搜索

pdf文档 Scrapy 2.1 Documentation

1.32 MB 342 页 0 下载 71 浏览 0 评论 0 收藏
语言 格式 评分
英语
.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 页请下载阅读 -
文档评分
请文明评论,理性发言.