Scrapy
Scrapy 是一个开源的网络爬虫框架。
简介
时间轴
快速入门
架构
了解更多 >> Scrapy 文档:Architecture overview
选择器
Scrapy支持使用XPath或CSS进行选择。其中CSS选择器底层也转为XPath来实现。可以使用scrapy shell
来进行交互式测试选取。
了解更多 >> Scrapy 文档:selectors
选择器生成
选择器可以嵌套使用。
名称 | 描述 | 示例 |
---|---|---|
response.selector.xpath() | 简写response.xpath()
|
response.xpath("//span/text()") response.css("img").xpath("@src") 选择所有含有src属性的img
|
response.selector.css() | 简写response.css()
|
response.css("span::text")
|
选择器属性方法
名称 | 描述 | 示例 |
---|---|---|
get() | 提取匹配第一个的数据,没有返回None,等同于之前版本的extract_first() 。
|
response.xpath("//title/text()").get() 返回标题,没有返回None。 response.xpath("//title/text()").get().get(default="默认值") 返回标题,没有返回“默认值”。
|
getall() | 返回列表,所有匹配元素的数据。等同于之前版本的extract() 。
|
response.css("img").xpath("@src").getall()
|
attrib | 返回匹配元素的属性,当用于列表上,返回第一个元素的属性。 | response.css("img").attrib["src"] response.css("img").attrib["src"]
|
了解更多 >> Scrapy 文档:selectors
蜘蛛
项目管道
当蜘蛛抓取到item后,会发送到项目管道(Item Pipeline),按项目管道设置的值,按从小到大依次进入不同管道处理。项目管道的典型用途包括:
- 清理 HTML 数据
- 验证抓取的数据(检查项目是否包含某些字段)
- 检查重复项(并删除它们)
- 将抓取的项目存储在数据库中
了解更多 >> Scrapy 文档: Item Pipeline
下载器
资源
官网
- Scrapy 官网:https://scrapy.org/
- Scrapy 文档:https://docs.scrapy.org/
- Scrapy 源代码:https://github.com/scrapy/scrapy