一 属性获取
1 点睛
用@符号就可以
2 代码
from lxml import etree
html = etree.parse('./test.html', etree.HTMLParser())
# 获取所有li节点下所有a节点的href属性
result = html.xpath('//li/a/@href')
print(result)
3 结果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/4_1.py
['link1.html', 'link2.html', 'link3.html', 'link4.html', 'link5.html']
4 说明
我们成功获取了所有li节点下a节点的href属性,它们以列表形式返回。
二 属性多值匹配
1 无法匹配情况
1.1 代码
from lxml import etree
text = '''
<li class="li li-first"><a href="link.html">first item</a></li>
'''
html = etree.HTML(text)
# 通过下面方式无法实现属性多值匹配
result = html.xpath('//li[@class="li"]/a/text()')
print(result)
1.2 运行结果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/4_1.py
[]
2 属性多值匹配
2.1 代码
from lxml import etree
text = '''
<li class="li li-first"><a href="link.html">first item</a></li>
'''
html = etree.HTML(text)
# 通过contains实现属性多值匹配
# contains()方法,第