Python lxml库的安装和使用

lxml是Python的一个强大的第三方库,用于处理XML和HTML文档。通过`pip3installlxml`进行安装,然后可以使用`etree`模块进行解析。lxml的`HTML()`方法能自动修正不规范的HTML。XPath表达式用于提取数据,如提取`a`标签内的文本和`href`属性值。文章展示了如何使用XPath从HTML中提取文本和属性信息。
摘要由CSDN通过智能技术生成

安装lxml库
lxml 属于 Python 第三方库,因此需要使用如下方法安装:
pip3 install lxml
在 CMD 命令行验证是否安装成功。若引入模块,不返回错误则说明安装成功。

import lxml

lxml使用流程
lxml 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面我们简单介绍一下 lxml 库的使用流程,如下所示:

  1. 导入模块
    from lxml import etree
  2. 创建解析对象
    调用 etree 模块的 HTML() 方法来创建 HTML 解析对象。如下所示:
    parse_html = etree.HTML(html)
    HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,该方法可以自动修正 HTML 文本。示例如下:
    from lxml import etree
    html_str = ‘’’
''' html = etree.HTML(html_str) # tostring()将标签元素转换为字符串输出,注意:result为字节类型 result = etree.tostring(html) print(result.decode('utf-8')) 输出结果如下: 上述 HTML 字符串存在缺少标签的情况,比如“C语言中文网”缺少一个 闭合标签,当使用了 HTML() 方法后,会将其自动转换为符合规范的 HTML 文档格式。 3) 调用xpath表达式 最后使用第二步创建的解析对象调用 xpath() 方法,完成数据的提取,如下所示: r_list = parse_html.xpath('xpath表达式') 1) 提取所有a标签内的文本信息 from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/text()' # 提取文本数据,以列表形式输出 r_list=parse_html.xpath(xpath_bds) # 打印数据列表 print(r_list) 输出结果: ['website product', '编程', '微博', '百度贴吧', '天猫淘宝', '京东购物', '编程', '安全卫士', '视频娱乐', '年轻娱乐', '搜索引擎'] 2) 获取所有href的属性值 from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/@href' # 提取文本数据,以列表形式输出 r_list=parse_html.xpath(xpath_bds) # 打印数据列表 print(r_list) 输出结果: ['http://www.biancheng.net/product/', 'http://www.biancheng.net/', 'http://world.sina.com/', 'http://www.baidu.com', 'http://www.taobao.com', 'http://www.jd.com/', 'http://c.bianchneg.net/', 'http://www.360.com', 'http://www.bytesjump.com/', 'http://bzhan.com/', 'http://hao123.com/'] 3) 不匹配href=" www.biancheng.net/priduct" from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/@href' # 提取文本数据,以列表形式输出 xpath_bds='//ul[@id="sitename"]/li/a/@href' # 打印数据列表 print(r_list) ![请添加图片描述](https://img-blog.csdnimg.cn/e719c1a21bb14bccb388875332b27e71.png)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值