6.Selectors
一、基础知识
- 当抓取网页时,最常见的任务是从HTML源码中提取数据。Scrapy提取数据有一套机制,被称作是选择器,通过特定的XPath或者CSS表达式来下选择HTML中的某部分数据,当然,其中lxml和Beautifulsoup也可以在scrapy中担任数据清洗的角色,主要用于爬虫规则的编写
- 选择器的使用步骤:
(1) from scrapy.selector import Selector:导入selector对象
(2) sel=Selector(response):声明selector对象,并将响应内容加载该对象中
(3) sel.xpath(xpath语法).extract():使用XPath对数据进行清洗,方法extract()将数据以列表的形式返回
xpath路径的表达式
表达式 | 描述 |
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
xpath的方括号[]可嵌套谓语(用来查找某个特定的节点或者包含某个指定值的节点),能精确的找出所需的数据
路径表达式:eg:
/div/a[1]: 选取属于div的第一个a标签
/div/a[@id!='image1.html']:选取div里属性id不为image1.html的a标签