lxml、Beautiful Soup、pyquery三个解析库
1、使用XPath
XML Path Language,XML路径语言。
举例://title[@lang='eng'],选择所有名称为title,属性lang的值为eng的节点。
from lxml import etree
# 导入lxml库中的etree模块
html=etree.HTML(text)
# 调用HTML类进行初始构造XPath解析对象html
# 对于HTML文本中的不闭合节点,etree模块可自动修正HTML文本
result=etree.tostring(html)
# 输出修正后的HTML代码,结果为bytes类型
print(result.decoding('utf-8'))
# 将bytes类型转换为str类型
# 所有节点,xpath匹配以//开头
html=etree.parse('./test.html',etree.HTMLParse())
# ./test.html表示该文件夹下的test.html文件
result=html.xpath('//*')
# *代表匹配所有节点,整个html文本中所有节点都会被获取
result=html.xpath('//li')
# 匹配所有li节点,第一个节点索引为0
# 通过/或// 查找元素的子节点或者子孙节点
result