xpath解析
-
安装
- pip install lxml
-
使用
from lxml import etree # 导入 # 将本地HTML文档的源码数据加载到etree对象中 etree.parse("路径") # 可以从互联网获取的元码数据加载到该对象中 etree.HTML(res.text) # 获取指定的元素 etree.xpath('xpath表达式') # 例 # 实例化etree对象 tree = etree.parse("test.html") # 获去根节点下HTML->body->所有div r = tree.xpath("/html/body/div") # 获取页面所有的li中的第7个->其内所有的文本 r = tree.xpath("//li[7]//text()") # 获取页面所有的div且类名为name的标签->中img标签属性名为src的属性值 r = tree.xpath("//div[@class='name']/img/@src")
-
“/” : 表示一个层级
-
“//” : 表示多个层级.可以表示从任意位置开始定位
-
属性定位 : //div[@class=“name”] 表示选中页面的所有div且类名为name的标签
-
索引定位: //div[@class=“name”]/p[3] 索引从1开始
-
取文本 :
- /text() 获取的是标签中直系的文本内容
- //text() 标签中非直系文本的内容 (所有文本内容)
-
使用xpath解析已用xpath获取过的对象需XXX.xpath("./表达式")
-
取属性 :
- /@attrName 例: img/@src 取得img标签的src属性