Java解析HTML最快的方式,使用JSoup解析 HTML ( 格式不良好)_java_开发99编程知识库

在尝试使用Jsoup解析一个格式不规范的HTML页面时,遇到元素定位错误。页面URL为http://www.filmaffinity.com/en/film290741.html,XPath在Firebug和Chrome下有所不同,导致解析出错。转换为CSS选择器后,Jsoup选取了错误的元素。问题可能源于HTML结构不良。寻求解决方案,考虑是否需要其他Jsoup技术来处理这种情况。
摘要由CSDN通过智能技术生成

我试图用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有什么可以解决这种问题的方法?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值