1、from lxml import etree 下载架包
将变量读取为html对象,自动添加......
html=etree.HTML(wb_data)
2、解析数据,/:根节点
data1=(html.xpath('/html'))
for i in data1:
print(i)
3、//:子孙节点,后面的节点可以在任意位置
4、写具体路径('/html/body/div/ul')
5、循环某个属性('('/html/body/@class')')
6、代表当前节点...代表父节点
data5=html.xpath('/html/body/div/ul/li/a')
for i in data5:
a=i.xpath('./@href')
print(a)
7、读取某一个节点
data6=html.xpath('/html/body/div/ul')
for i in data6:
li_1=i.xpath('./li[1]')
print(li_1)
li_last=i.xpath('./li[last()]')
print(li_last)
8、带有某属性的标签
data7=html.xpath('//ul/li/a[@href="link2.html"]')
for i in data7:
print(i.text)
9、*位置节点
data8=html.xpath('//ul/li/*')
for i in data8:
if hasattr(i,'text'):
print(i)
else:
print(i)
10、将字符串解析为html对象,补全html,body
html=etree.HTML(wb_data)
将a标签的文本直接获取,text()
data2=html.xpath('//li/a/text()')
print(data2)
11、解析html文件
parser=etree.HTMLParser(encoding='utf-8')
html_file=etree.parse('ddd.html',parser=parser)
12、匹配任意节点
data3=html_file.xpath('//*')
for i in data3:
if hasattr(i,'text'):
print(i.text)
13、解析匹配带属性的a标签的text文本
data4=html_file.xpath('//li/a[@href]/text()')
print(data4)
14、解析属性的值
data5=html_file.xpath('//li/a/@href')
print(data5)
15、谓语
data6=html_file.xpath('//li[last()]/a/text()')
print(data6)