xpath使用
-
安装:pip3 install lxml
-
绝对路径(每一个都是从根开始查找)
-
查找了所有a标签的属性等于href属性值,利用的是/—绝对路径,
-
列子:
’’’
we_data = ‘’’ -
导入:from lxml import etree
-
转换对象:html = etree.HTML(data) 打印出是python的一个对象
-
etree.tostring(html)补全html缺胳膊少腿的标签:result = etree.tostring(html)
-
获取某个标签的内容(基本使用),注意,获取a标签的所有内容,a后面就不用再加正斜杠,否则报错。
-
第一种写法:
-
根据result补全的标签找到需要的部分,注意不可以直接.text必须使用循环否则报错
-
html_data = html.xpath(’/html/body/div/ul/li/a’) 获取出来的是每个需要内容的对象,需要循环 读取文本.text
-
-
第二种写法:
-
(直接在需要查找内容的标签后面加一个/text()就行)
-
html_a = html.xpath(’/html/body/div/ul/li/a/text()’) 返回的是获取需要内容的列表 循环列表得出需要的内容
-
-
-
打印指定路径下a标签的属性(可以通过遍历拿到某个属性的值,查找标签的内容)
-
html_attri = html.xpath(’/html/body/div/ul/li/a/@href’) 标签下/@属性
-
-
查找最后一个li标签里的a标签下的内容:
-
倒着加入:[last()]
-
-
查找倒数第二个li标签里的a标签下的内容:
-
使用parse打开html的文件:
- html = etree.parse(‘路径’) 读取出指定位置的html
html_data = etree.tostring(html,pretty_print=True)res = html_data.decode(‘utf-8’)print(res)
- html = etree.parse(‘路径’) 读取出指定位置的html
-
-
相对路径
-
相对路径,查找一下l相对路径下li标签下的a标签下的href属性的值,注意,a标签后面需要双//。
-
查找一下l相对路径下li标签下的a标签下的内容
-
查找一下l相对路径下li标签下的a标签下的href属性的值
-
-
-
相对路径下跟绝对路径下查特定属性的方法类似,也可以说相同。
-
根据属性查找:指定属性下需要的的文本内容 在需要的标签下的属性加入
-
-
如果在提取某个页面的某个标签的xpath路径的话:
[外链图片转存中…(img-RLIkvzKk-1565610323409)]
-
如果在提取某个页面的某个标签的xpath路径的话:
-
//*[@id=“kw”] 使用相对路径查找所有的标签,属性id等于kw的标签。