关于 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)

附图:

 

posted @   yu-ye  阅读(1088)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示