nodename : 选取此节点的所有子节点
/ : 从当前节点选取直接子节点
// : 从当前节点选取子孙节点
. : 选取当前节点
.. : 选取当前节点的父节点
@ : 选取属性
3. 使用
3.1安装lxml库
3.2 基本用法:
from lxml import etree #从lxml 导入etree模块 text = '''html 文档 ''' #声明 HTML文本 html = etree.HTML(text) #调用HTML类, 进行初始化, 构造了一个XPath解析队形, 可以自动修正HTML文本 result = etree.tostring(html) # 调用tostring() 方法即可输出修正后的HTML代码, 结果是bytes类型的, print(result.decode('utf-8')) #利用decode() 方法将其转化成str类型
还可以直接读取文本文件进行解析
html = etree.parse('猫眼.html',etree.HTMLParser()) ret = etree.tostring(html) print(ret.decode('utf-8'))
3.3 找到所有节点
我们一般都会用 // 开头的XPath来选取所有符合要求的节点
from lxml import etree html = etree.parse('猫眼.html', etree.HTMLParser()) ret = html.xpath('//*') #我们使用*代表匹配所有 for i in ret: print(i) #获取的是一个列表,包含了所有的节点 # #每个节点都是一个 Element 类型, 后面跟着节点名称