XPath使用路径选择器选取节点。
| 表达式 | 含义 |
|---|---|
| / | 选取此节点的所有子节点 |
| // | 从匹配选择的当前节点选择选择文档中的节点,不考虑他们的位置 |
| . | 选取当前节点 |
| … | 选取当前节点的父亲节点 |
| @ | 选取属性 |
| * | 匹配任何元素节点 |
| @* | 匹配任何属性节点 |
| Node | 匹配任何类型的节点 |
示例
// superhero.xmlTony Stark Tron Man male 1969 47 Peter Benjamin Parker Spider Man male unkonwn unknown Steven Rogers Caption America male 19200704 Captain America male 96
使用XPath提取
from scrapy.selector import Selector
with open('./superhero.xml','r') as fp:
body=fp.read()
Selector(text=body).xpath('/*').extract()
CSS选择器
CSS规则=构成器+声明
| 选择器 | 值 | 含义 |
|---|---|---|
| .class | .intro | 选择class=“intro”的所有元素 |
| #id | #firstname | 选择id-=“firstname”的所有元素 |
| * | * | 选择所有元素 |
| element | p | 选择所有p元素 |
| element,element | div,p | 选择所有div元素和p元素 |
| attribute | [target] | 选择带有target属性的所有元素 |
| attribute=value | [target=_blank] | 选择target="_blank"的所有元素 |
Scrapy中CSS的基本用法
①response.css(‘a’)返回的是selector对象,
②response.css(‘a’).extract()返回的是a标签对象
③response.css(‘a::text’).extract_first()返回的是第一个a标签中文本的值
④response.css(‘a::attr(href)’).extract_first()返回的是第一个a标签中href属性的值
⑤response.css(‘a[href*=image]::attr(href)’).extract()返回所有a标签中href属性包含image的值
⑥response.css(‘a[href*=image] img::attr(src)’).extract()返回所有a标签下image标签的src属性



