关于 Xpath 能解析网页,但返回空列表


  • tboty问题:

  当我们用浏览器直接copy Xpath 时(因为浏览器时实时解析),tbody这个元素是html生成时产生的,在使用xpath解析的时候无法解析,因此返回的列表为空值。

解决方法:把tbody去掉就行啦

 

  • 路径问题:

完整路径(就是我们内容所在的位置的路径):/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a

 

绝对路径(我们通过衔接路径(./),路径与完整路径相同):   

大方向路径:title = html.xpath("/html/body/div[3]/div[2]/div[2]/div[1]/ul")[0]
li = title.xpath("./li/a/text()")

我们把两个路径连起来,和完整路径相同(/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a),用(./)链接起来

./:代表之前的路径

相对路径:

完整路径:/html/body/div[3]/div[2]/div[2]/div[1]/ul/li[2]/a
大方向路径:title = html.xpath("/html/body/div[3]/div[2]/div[2]/div[1]/ul")[0]

for循环路径:./a/text()
通过观察发现:相对路径的 ./ 代表的到大方向路径之下的一个路径(li)。

我们再写相对路径的时候,不要跟完整路径混合。

写成完整路径不会报错,也能解析成功,会返回列表
for ti in title:
t = ti.xpath("./a/text()")
print(t)

附图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM