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

附图:

[讨论]玩机老鸟们,正常来说CPU用多久之后性能会有所下降?
揭秘:为什么世界杯足球队要招26人?背后的原因竟然是这些!