| 语言 | 格式 | 评分 |
|---|---|---|
英语 | .pdf | 3 |
| 摘要 | ||
文档介绍了Scrapy 2.1版本的主要更新内容,包括Selector API的改进,Telnet控制台的安全性增强,新扩展功能如from_crawler支持,信号管理器的更新,以及文档的改写和新增部分。此外,还提到了对parsel库的依赖升级,弃用了一些旧模块,并修复了多个问题。 | ||
| AI总结 | ||
### Scrapy 2.1 Documentation 总结
#### 1. 版本更新概述
- **Scrapy 2.1.0 发布日期**:2020年7月16日
- **主要更新**:
- 清理了弃用代码。
- 修复了各种bug,并新增了一些功能和改进。
---
#### 2. 主要更新内容
##### 2.1 Selector API 变化
- Scrapy 现在依赖于 `parsel >=1.5`。
- 推荐使用 `.get()` 和 `.getall()` 方法,替代旧的 `.extract_first()` 和 `.extract()`。
- 新增 `Selector.attrib` 和 `SelectorList.attrib` 属性,方便获取 HTML 元素的属性。
- CSS 选择器在 `parsel >=1.5` 中被缓存,性能更优。
- 注意:`.extract()` 和 `.extract_first()` 方法目前没有计划弃用。
##### 2.2 Telnet Console
- 向后不兼容:Scrapy 的 Telnet 控制台现在需要用户名和密码。
- 该改动修复了安全性问题。
##### 2.3 新增扩展性功能
- **Feed Exporters 和 Feed Storages**:新增 `from_crawler` 支持,允许从自定义 Feed 存储和导出器访问 Scrapy 设置。
- **重复过滤器 (Dupefilters)**:新增 `from_crawler` 支持,允许访问设置或蜘蛛。
- **信号机制**:
- 新增 `item_error` 信号,当管道中出现错误时触发。
- 新增 `request_reached_downloader` 信号,当下载器接收到新请求时触发。
- **SitemapSpider**:新增 `sitemap_filter()` 方法,允许在子类中根据 Sitemap 属性筛选条目。
- **Downloader Handlers**:惰性加载现在可选,便于处理自定义下载器的初始化错误。
- **FormRequest.from_response**:修复了处理重复键的问题。
##### 2.4 文档改进
- 更新文档,推荐使用 `.get()` 和 `.getall()` API,重新组织了选择器文档。
- 新增教程“使用浏览器开发者工具进行抓取”,替代旧的 Firefox 和 Firebug 教程。
- 文档新增 `SCRAPY_PROJECT` 环境变量说明。
- 教程中新增了更多调试和资源链接。
- 修复了默认重试 HTTP 码和弃用选项的文档问题。
##### 2.5 向后不兼容的改动
- 移除了 Scrapy 1.0 之前的模块名称兼容层,包括:
- `scrapy.command`
- `scrapy.contrib` 及其子模块
- `scrapy.contrib_exp` 及其子模块
- `scrapy.dupefilter`
- `scrapy.linkextractor`
- `scrapy.project`
- `scrapy.spider`
- `scrapy.spidermanager`
- `scrapy.squee`
- `scrapy.stats`
- `scrapy.statscol`
- `scrapy.utils.decorator`
- 移除了 `scrapy.interfaces.ISpiderManager`,建议使用 `scrapy.interfaces.ISpiderLoader`。
- 移除了 `CrawlerSettings` 类。
---
#### 3. 其他重要更新
- **Python 3 支持**:Scrapy 1.1 开始支持 Python 3,但 Python 3.3 已被移除(Scrapy 1.5)。
- **默认 User-Agent**:Scrapy 1.5 默认使用包含 `https://scrapy.org` 的 User-Agent。
- **日志改进**:Scrapy 1.5 修复了日志记录器从 `[scrapy.utils.log]` 到 `[scrapy.crawler]` 的改动。
- **新功能**:
- 支持 Google Cloud Storage 的 `FilesPipeline` 和 `ImagesPipeline`。
- 支持 HTTP 308 永久重定向和 522/524 状态码。
- 新增 `scrapy parse` 命令的 `--meta` 选项,允许传递请求元数据。
- 支持 `ptpython` REPL。
- **性能改进**:爬取代理服务器时复用连接,提升效率。
---
#### 4. 扩展性内容
- **架构概述**:Scrapy 的核心组件包括爬虫引擎、调度器、下载器、蜘蛛、选择器、管道和中间件,数据流主要在这些组件之间流动。
- **Crawler API**:`Crawler` 对象是 Scrapy 的主要入口,提供对核心组件的访问。
- **信号和扩展**:开发者可通过信号和扩展机制自定义 Scrapy 功能。
---
#### 5. 总结
Scrapy 2.1 版本在功能、性能和文档上均有显著提升,新增了多项实用功能(如 `from_crawler` 支持、信号机制和 Google Cloud Storage 集成),同时修复了安全性问题和旧代码的兼容性问题。开发者应关注 API 变化和向后不兼容的改动,确保代码适应新版本。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
335 页请下载阅读 -
文档评分














Scrapy 2.1 Documentation
Celery 2.1 Documentation