python xpath匹配结果为空

写python爬虫的时候为了省事,通常会在在浏览器中打开F12,右键复制 xpath 。

谷歌浏览器这里有一个坑,在这费了半天时间


复制的xpath为
python中如下://*[@id=“mainFrame”]/div/table/tbody/tr/td[1]//text()


使用浏览器插件 xpath helper 测试匹配成功!


到了python代码里怎么写都匹配不到,如下

xxx.xpath('//*[@id="mainFrame"]/div/table/tbody/tr/td[1]//text()')

匹配到的结果为空列表 [ ]。


原因:

浏览器对 xpath 进行了 “优化” ,导致从浏览器里直接复制出来的 xpath 放在python中运行匹配不到。

解决方案:

删除多余的 tbody 。代码如下:

#这里多了个tbody,删掉即可
xxx.xpath('//*[@id="mainFrame"]/div/table/tbody/tr/td[1]//text()')
#修改后代码如下,成功匹配:
xxx.xpath('//*[@id="mainFrame"]/div/table/tr/td[1]//text()')

猜你喜欢

转载自blog.csdn.net/qq_35425070/article/details/87697898