python添加lxml库_Python爬虫基础教程——lxml爬取入门

本文是Python爬虫基础教程,介绍了lxml库的安装、etree模块的Element类、tostring()方法,以及XML()和HTML()的使用。详细讲解了XPath和CSS选择器的基础语法,并通过实例演示了如何利用lxml进行网页元素定位。文章最后给出了XPath和CSSSelect的实际案例,帮助读者掌握lxml的基本操作。
摘要由CSDN通过智能技术生成

341d3f1d65db5af73d40335f8b03bd67.png

大家好,上次介绍了BeautifulSoup爬虫入门,本篇内容是介绍lxml模块相关教程,主要为Xpath与lxml.cssselect 的基本使用。

一、lxml介绍

引用官方的解释:

lxml XML工具箱是C库libxml2和libxslt的Python绑定 。它的独特之处在于它将这些库的速度和XML功能的完整性与本机Python API的简单性结合在一起,该Python API大多数都兼容,但优于著名的 ElementTree API。
lxml.etree是一个非常快速的XML库。这主要是由于libxml2的速度,例如解析器和序列化器,或XPath引擎。lxml的其他区域专门为在高层操作(例如树迭代器)中的高性能而编写。

简单的来说,lxml 是一种使用 Python 编写的库,可以迅速、灵活地处理 XML 和 HTML。

二、学习lxml库的目的

利用所学的XPath语法与lxml.cssselect模块,来快速定位特定元素以及节点信息,目的是提取HTML、XML目标数据

三、lxml安装

pip install lxml

pip install lxml

-i http://pypi.douban.com/simple/

--trusted-host http://pypi.douban.com

顺便说一句:我使用的开发工具还是vscode,不清楚的看一下之前的推文。

四、etree模块

使用etree模块,我们可以创建XML/Html元素及其子元素,我们用于操作Html或XML文件时非常有用。

4.1 Element类

用于ElementTree的API主容器对象。大多数XML树功能都是通过此类访问的。

下面尝试一下:

from lxml import etree

root=etree.Element('root')
print(root.tag)
child=etree.SubElement(root,'child') # 添加一个子节点
child.set('id','test_Id')
print(etree.tostring(root))          # tostring 为序列化

结果:

c89b0a02fc1063d7b71a35f6863db9a6.png

可以看出来我们可以使用Element类来创建xml内容。

4.2 tostring()

tostring()主要是对对象进行序列化,不能对集合进行序列化。

from lxml import etree

root = etree.XML('<root><a><b/></a></root>') 

print(etree.tostring(root))                        #default: method = 'xml'

print(etree.tostring(root, encoding='iso-8859-1')) #设置编码方式为 iso-8859-1

print(etree.tostring(root, pretty_print=True))     # 格式化

root = etree.XML('<html><head/><body><p>Hello<br/>Python知识学堂</p></body></html>')
etree.tostring(root, method='xml')                 # 默认值为:xml

etree.tostring(root, method='html')                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值