xpath 是在XML文档中搜索内容的一门语言,而html 是xml的一个子集
首先我们需要先导入模块,在pycharm3.0版本后都自带了,如果没有自带就先自行下载
from lxml import etree#导入etree模块,因为etree模块中才有xpath
然后接下来将一些简单的用法,我们这里以一个简单的网页为模板举例:
Title
- 百度
- 谷歌
- 搜狗
- 涂涂
- 瓜皮
- 李哥
然后我们把把html的内容加载成一个tree的对象
html="""Title
- 百度
- 谷歌
- 搜狗
- 涂涂
- 瓜皮
- 李哥
查取我们想要的内容时,/表示层级关系。第一个/是根节点:
result=tree.xpath("/html/body/ul/li/a")#查取a标签的内容 print(result)
运行结果:
拿去文本内容:
result=tree.xpath('/html/body/ul/li/a/text()')#text()拿取文本内容返回一个表格 print(result)
运行结果:
xpath中通过索引拿到指定的内容:
result=tree.xpath('/html/body/ul/li[1]/a/text()')#xpath的索引顺序是从1开始,[]表示索引 print(result)
运行结果:
xpath通过筛选属性拿到指定的内容:
result = tree.xpath('/html/body/ol/li/a[@href="tutu"]/text()')#[@xxx='xxx'] 属性的筛选 print(result)
运行结果:
遍历拿取属性值(也可拿去内容):
ol_li_list=tree.xpath("/html/body/ol/li") for li in ol_li_list: #从每一个li中提取到文字信息 # result=li.xpath("./a/text()")#运用相对查询,./ 表示当前节点 result = li.xpath("./a/@href")#拿到href这个属性的值 print(result)
运行结果:
一次性拿取所有属性值:
reslut=tree.xpath('/html/body/ol/li/a/@href')#拿取href这个属性的值 print(reslut)
运行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)