导入模块:from lxml import etree
构造对象,初始化: html = etree.HTML(html1),或直接读取html=etree.HTML(''./html1.html etree.HTMLparser())
修正html代码 result = etree.tostring(html) 此时结果是bytes类型,用decode()方法转化str类型
result = etree.parse('')
匹配规则:
nodename 选取此节点的所有子节点 /从当前节点选取直接子节点 // 从当前节点选取子孙节点
.选取当前节点 ..选取当前节点的父节点 @选取属性
例如:ul--li--a
一般用//开头的xpath规则取,//*表示所有节点,//li获取所有li节点(结果是;列表形式),
//li/a 获取li的所有直接a节点 //ul//a 获取ul的所有子孙节点. 不能用/来查找子孙节点
// a[@href =” link4.html ”] /.. /@ class :获取属性为x的节点a的父节点,在获取其属性y
获取父节点也可以,/parent::*
获取文本text()方法,获取li内部文本,先获取a节点//li/a/text()或者获取所有子孙节点的文本//li//text()
属性匹配:进行过滤[@href='link4.tml'] ,最终获得的是节点
属性获取:获取节点的某个属性 //li/a/@href ,最终获得的是属性
属性多值匹配:节点的某个属性有多个值 //li[contains(@class,'li')] 。
多属性匹配:节点有多个属性,用and连接,
按序选择:只想要匹配结果的某部分,用中括号传入索引方法,序号以1开头,last()结束,位置小于3 用[position()<3] ,倒数第三个用last()-2
网友评论