python爬虫(十三) lxml模块
lxml是一个HTML/XML的解析库,主要功能是如何解析和提取HTML/XML数据
lxml和正则一样,是用c实现的,我们可以用XPath语法,来快速的定位特定元素以及节点信息。需要用到pip。
使用:
1、解析一段html的字符串
from lxml import etree text=""" # 一段html代码 """ htmlElement=etree.HTML(text) print(etree.tostring(htmlElement,encoding='utf-8').decode('utf-8'))
使用etree.HTML()
不需要解析器
2、解析一个html代码的文件
htmlElement=etree.parse("xxx.html") print(etree.tostring(htmlElement,encoding='utf-8').decode('utf-8'))
使用etree.parse("xxx.html")
但是这个方法不能处理一些不规范的标签
所以要加一行解析器:parser=etree.HTMLParser(encoding='utf-8')
from lxml import etree parser=etree.HTMLParser(encoding='utf-8') htmlElement=etree.parse("lagou.html",parser=parser) print(etree.tostring(htmlElement,encoding='utf-8').decode('utf-8'))
结果: