python的etree使用_Python之lxml模块的etree类的使用

Python之lxml模块的etree类的使用

前言:

有关xptah语法可在W3school中查看或者在上一篇博客查看

lxml的安装与etree类的导入

将html字符串转化为Element对象,且elment对象的方法

element对象的xptah方法

1.lxml模块的安装

安装方式:在终端cmd下利用pip命令安装即可(保证网络畅通)

pip install lxml

2.element对象

element对象是xpath语法的使用对象,element对象可由html字符串转化

利用etree.HTML()将html字符串转化为element对象 , from lxml import etree

MyStr = '''

'''

HtmlElement = etree.HTML(MyStr)

print(type(HtmlElement))

#

将element对象转化为字符串

etree的tostring方法可以将element转化为二进制类型。故需要用encoding属性指定编码方法,否则可能会造成乱码。

且此方法会使原来不规则的html字符串补全为规则的html HtmlStr=etree.tostring(HtmlElement,encoding="utf-8").decode()

print(HtmlStr)

输出:

3.element对象的xpath方法

利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数据

html = etree.HTML(text)

ret_list = html.xpath("xpath字符串")

如果xpath取的标签的属性,则返回字符串的列表 #取MyStr中link标签的href属性

from lxml import etree

MyStr = '''

'''

HtmlElement = etree.HTML(MyStr)

EleList = HtmlElement.xpath("//link/@href") # 这样匹配列表中的每个元素都是字符串

print(EleList)

输出: ['https://img3.doubanio.com/f/movie/d59b2715fdea4968a450ee5f6c95c7d7a2030065/pics/movie/apple-touch-icon.png', 'https://img3.doubanio.com/f/shire/bf61b1fa02f564a4a8f809da7c7179b883a56146/css/douban.css', 'https://img3.doubanio.com/f/shire/ae3f5a3e3085968370b1fc63afcecb22d3284848/css/separation/_all.css', 'https://img3.doubanio.com/f/movie/8864d3756094f5272d3c93e30ee2e324665855b0/css/movie/base/init.css']

如果xpath取标签,则返回element元素的列表 from lxml import etree

MyStr = '''

'''

HtmlElement = etree.HTML(MyStr)

EleList = HtmlElement.xpath("//link[@ href]") # 这样匹配列表中的每个元素都是element元素

print(EleList)

输出: [, , , ]

4.补充

**lxml的高阶使用:**当提取标签的多种属性时,可以分组提取相应的标签,在对每个标签进行处理即可,这样可防止有些标签没有相应的属性,导致信息列表对应错误

剩下的都是xpath语法的使用了,只需深入了解xpath语法即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值