xpath中的坑
使用xpath易错点
1、//的误用
通过xpath得到的elem对象,不能在开头使用//进行定位。在开头使用//是对原elem进行xpath
举个例子:
from lxml import etree
html = """<html>
<body>
<li><i>1<i></li>
<li><i>2<i></li>
<li><i>3<i></li>
<li><i>4<i></li>
<li><i>5<i></li>
<li><i>6<i></li>
<li><i>7<i></li>
<li><i>8<i></li>
</body>
</html>"""
html = etree.HTML(html)
lis = html.xpath('//li')
# 打印第一个li节点
print(etree.tostring(lis[0]).decode())
# 在开头使用//取到的文本
print(lis[0].xpath('//i/text()'))
# 去掉开头//取到的文本
print(lis[0].xpath('i/text()'))
print(lis[0].xpath('i//text()'))
# 直接对html使用
print(html.xpath('//i/text()'))
"""
运行结果
<li><i>1<i/></i></li>
['1', '2', '3', '4', '5', '6', '7', '8']
['1']
['1']
['1', '2', '3', '4', '5', '6', '7', '8']
"""
如果觉得本文有用,万望看官慷慨解囊,不吝打赏,激励本编提供更加优质的内容
[点击进行打赏](https://www.cnblogs.com/52note/p/16507868.html)