欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

关于python中.xpath的使用问题

时间:2022-05-10 10:14:05|栏目:Python代码|点击:

在python中使用xpath定位时,有时候会先用.xpath定位到一个地点,for循环后,继续使用.xpath,但是会出现问题,比如在下面这个例子中:

 

 根据xpath定位到了tr,注意游览器自动生成了tbody,在python中要把自动生成的tbody层级去掉。

此时我们想获取tr下面的td,请看代码

import requests
from lxml import etree
 
url = "https://www.w3school.com.cn/xpath/xpath_axes.asp"
res = requests.get(url).text
html = etree.HTML(res)
a = html.xpath("(//table[@class='dataintable'])[1]/tr")
print(a)
 
for i in a:
    s = i.xpath("//td")
    print(s)
    print(len(s))

for i in a下,我们想找到的是每个tr下面的td,按理来说只有两个,但是返回的却是全部的44个td,问题出在哪里呢?原来是s = i.xpath("//td")这个写法不对,虽然 i 继承了 a 的xpath路径,但是如果写成//td,等于告诉xpath重新搜索全部,必须要加上点才可以。s = i.xpath(".//td"),一个点代表当前目录,两个点代表上级目录

 这次搜索正常了

总结:除非在一开始的搜索式直接写成 (//table[@class='dataintable'])[1]/tr//td,这样直接搜索td,不用带点,在复用.xpath的时候,必须加上点表明当前目录,否则搜索不到想要的结果

上一篇:python替换字符串中的子串图文步骤

栏    目:Python代码

下一篇:python机器学习基础特征工程算法详解

本文标题:关于python中.xpath的使用问题

本文地址:http://www.codeinn.net/misctech/201508.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有