我试图用Jsoup分析一个HTML页面并建立一些奇怪的问题。 页面是:http://www.filmaffinity.com/en/film290741.html,你可以看到,并不是格式良好的。 它有一些问题,我可以猜测影响分析。 通过Firebug和 Chrome,我获得了我正在寻找( 页面中的5.8速率)的元素的XPath 。Chrome 指向: /html/body/table[2]/tbody/tr/td[2]/table/tbody/tr[1]/td/table[1]/tbody/tr/td[2]/table/tbody/tr[2]/td
而Firebug指向: /html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td
唯一不同的是中的,它不显示在Firebug中。 我已经手动验证了路径,它是正确的。
然后我将xpath转换为Jsoup中的CSS查询,以便稍后提取特定元素:Element rate=doc.select("html body table:nth-child(2) tbody tr td:nth-child(2) table tbody tr td table tbody tr td:nth-child(2) table tbody tr:nth-child(2) td")
代码的执行并没有正确定位我,而是将Firebug引用的元素放在XPath中,如下所示:wrong:/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[15]/td[2]
right:/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td
从最后开始,第一个区别是:/td/table/tbody/tr[15]/td[2]
它采用第一个元素而不是第二个元素。
有什么办法可以解决这种问题? 是与html不良形成的问题,或者我缺少一些我可以用来解决这个问题的Jsoup技术。
因为它应该能够处理格式良好的Html,所以我选择了 Jsoup 。 我是不是要求?
对于Jsoup有什么可以解决这种问题的方法?