Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从html中获取细节?_Java_Html_Urlconnection - Fatal编程技术网

Java 如何从html中获取细节?

Java 如何从html中获取细节?,java,html,urlconnection,Java,Html,Urlconnection,我有一些java代码,可以从我选择的网站打印html。我希望它只打印HTML代码中的特定日期,如下所示: <tr class="bgWhite"> <td align="center" width="50"><nobr>GD&#160;</nobr></td> <td align="center">Q3&#160;2012</td> <td align="left" width

我有一些java代码,可以从我选择的网站打印html。我希望它只打印HTML代码中的特定日期,如下所示:

<tr class="bgWhite">
  <td align="center" width="50"><nobr>GD&#160;</nobr></td>
  <td align="center">Q3&#160;2012</td>

  <td align="left" width="*">Q3 2012 General Dynamics Earnings Release</td>
  <td align="center">$ 1.83&#160;</td>
  <td align="center">n/a&#160;</td>
  <td align="center">$ 1.83&#160;</td>
  <td align="center"><nobr>24-Oct-12</nobr></td>
</tr>
<tr class="bgWhite">
  <td align="center" width="50"><nobr>GD&#160;</nobr></td>
  <td align="center">Q2&#160;2012</td>

  <td align="left" width="*">Q2 2012 General Dynamics Earnings Release</td>
  <td align="center">$ 1.75&#160;</td>
  <td align="center">n/a&#160;</td>
  <td align="center">$ 1.79&#160;</td>
  <td align="center"><nobr>25-Jul-12 BMO</nobr></td>
</tr>

我认为这是SAX解析器的标准UC。您不应该逐行进行(您不能期望html文档总是按当前的方式组织,因此使用SAX解析器将是一个更灵活的解决方案)


如果您有关于文档大小的信息,并且知道它不会增长很多,那么您也可以使用DOM解析器。但是从这个角度来看,SAX解析器也更好。

我认为这是SAX解析器的标准UC。您不应该逐行进行(您不能期望html文档总是按当前的方式组织,因此使用SAX解析器将是一个更灵活的解决方案)


如果您有关于文档大小的信息,并且知道它不会增长很多,那么您也可以使用DOM解析器。但是,从这个角度来看,SAX解析器也更好。

使用一个完整的HTML解析器比使用低级的
java.net.URLConnection
更容易。然而,由于目标网站生成的是绝对非语义的HTML(一个和所有没有任何语义标识符/类的表,就像90年代的普通网站一样(恶心)),因此即使是一个像样的HTML解析器也很难正确解析它。但无论如何,这里有一个完整的启动示例,使用它可以精确打印您需要的信息:

Document document = Jsoup.connect("http://www.earnings.com/company.asp?client=cb&ticker=gd").get();
Elements dateColumn = document.select("table:eq(0) tr:eq(0) table:eq(7) tr:eq(2) table:eq(4) td:eq(6):not(.dataHdrText02)");

for (Element dateCell : dateColumn) {
    System.out.println(dateCell.text());
}
就这些。无需使用低级
java.net.URLConnection
或详细的SAX解析器

另见:

与低级
java.net.URLConnection
相比,在作业中使用一个完整的HTML解析器更容易。然而,由于目标网站生成的是绝对非语义的HTML(一个和所有没有任何语义标识符/类的表,就像90年代的普通网站一样(恶心)),因此即使是一个像样的HTML解析器也很难正确解析它。但无论如何,这里有一个完整的启动示例,使用它可以精确打印您需要的信息:

Document document = Jsoup.connect("http://www.earnings.com/company.asp?client=cb&ticker=gd").get();
Elements dateColumn = document.select("table:eq(0) tr:eq(0) table:eq(7) tr:eq(2) table:eq(4) td:eq(6):not(.dataHdrText02)");

for (Element dateCell : dateColumn) {
    System.out.println(dateCell.text());
}
就这些。无需使用低级
java.net.URLConnection
或详细的SAX解析器

另见:

有什么原因不能使用XML解析器吗?有什么原因不能使用XML解析器吗?