关于 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)
附图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署