lxml 是 Python 的第三方解析库,在第一次使用前需要使用到下面命令进行下载
pip install lxml
lxml模块中提供了一个etree 模块,该模块专门用于解析HTML/XML 文档
from lxml import etree
parse_html = etree.HTML(html)
HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,该方法可以自动修正 HTML 文本。parse_html只是一个变量名,后续的调用xpath表达式都是在此对象的基础上完成的。
r_list = parse_html.xpath('xpath表达式')
xpath方法会将符合xpath表达式的结果以列表的形式返回。
常用的路径表达式
常用方法
哈哈哈
contains()
获取含有指定属性的节点
- first item
如果一个属性里面有两个值,采用其中任意一个属性匹配无法获取,必须选择全部值进行匹配才能获取,contains()方法就可以解决这个问题。
该方法接收两个参数,第一个参数传入属性名称,第二个参数传入属性值,如:
result1 = html.xpath('//li[contains(@class, "li")]/a/text()')
按序查找
result = html.xpath("//li[1]/a/text()")
last()
最后一个
result1 = html.xpath("//li[last()]/a/text()")
该方法也支持与运算符共同使用,如:
result3 = html.xpath("//li[last()-2]/a/text()")
表示获取倒数第3个节点,在最后一个的基础上-2.
position()
获取指定位置,与索引不同的是,该方法一般与运算符共同指定,如:
result2 = html.xpath("//li[position()<3]/a/text()")
则表示获取前两个节点 ,获取位置序号小于3的节点