常用规则
表达式 | 描述 |
---|---|
nodename | 选取此节点所有子节点 |
/ | 从当前节点直接选取所有子节点 |
// | 从当前节点直接选取子孙节点 |
. | 选取当前节点 |
. . | 选取当前节点父节点 |
@ | 选取属性 |
contains() | 属性多值匹配 |
text() | 获取文本 |
Python中的Xpath
from lxml import etree
html = etree.HTML(text) #text为爬取的网页
result = html.xpath("//div[@class='name']/li[contains(@class,'text')]/a/@href") #一般用法,注意scrapy中的xpath还需要extract() or extract_first()提取文本,
html_2 = etree.parse('text.html', etree.HTMLParser()) #text.html为硬盘中的html文件
多属性匹配
运算符 | 描述 |
---|---|
or | 或 |
and | 与 |
mod | 除后取余 |
| | 计算两个节点集 |
+ | 加法 |
- | 减法 |
* | 乘法 |
div | 除法 |
= | 等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |