Xpath:
安装lxml库:
pip install lxml
导包:
from lxml import ertee
etree.parse() 注:html_tree = etree.parse(‘XX.html’) 解析本地HTML文件
etree.HTML() 注:html_tree = etree.HTML(response.read().decode(‘utf-8’)) 解析网络的HTML字符串
html_tree.xpath() 注:使用xpath路径查询信息,返回的是一个列表
xpath是返回的一个列表,取的时候按照下标去取
在xpath中,有七中类型的节点:元素、属性、文本、命名空间、处理指令、注释、文档(根)节点
xpath是一门在xml文档中查找信息的语言。xpath用于在xml文档中通过元素和属性进行导航
节点:一个标签就是一个节点
父(parent)节点:
body标签就是b标签的父节点
子(children)节点:
b标签就是body标签的子节点
同胞(sibling)节点:
b标签和p标签就是同胞节点
先辈(ancestor)节点:
某节点的父、父的父、等等
后代(descendant)节点:
某节点的子、子的子、等等
选取节点的方式:
路径查询:
/ 总根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
属性查询:
@ 选取属性
逻辑运算:
//div[@id=‘head’ and @class=‘s_down’] 表示class=s_down并且id=head
//title | //price 表示title或者price标签
模糊查询:
contains://div[contains(@class, “属性名称”)] 注:包含属性名称的class都取出来
start-with://div[start-with(@id, ‘属性名称’)] 注:id的属性是以属性名称开头的都取出来
end-with://div[end-with(@id, ‘属性名称’)] 注:id的属性是以属性名称结尾的都取出来
内容查询:
text()?/div[@class=“content”]/div/p/text() 注:取出来的是它里面的内容