搜索

pdf文档 Scrapy 2.7 Documentation

1.67 MB 401 页 0 下载 79 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Scrapy 2.7.1文档介绍了Scrapy框架的最新更新,包括新增功能、bug修复和文档改进。主要更新包括:支持Python 3.11,弃用Python 3.6;默认启用asyncio支持;FEED_EXPORT_FIELDS设置扩展为字典类型;升级parsel库以提高CSS选择器性能;修复了多项已知问题并改进了文档。
AI总结
### Scrapy 2.7 文档总结 #### 1. **基本概念** - **命令行工具**:Scrapy 提供了一个强大的命令行工具,用于管理爬虫项目和执行各种操作。 - **爬虫(Spiders)**:Scrapy 的核心组件,用于定义爬取规则和处理响应。 - **选择器(Selectors)**:用于从 HTML 或 XML 响应中提取数据,支持 XPath 和 CSS 选择器。 - **项目(Items)**:定义爬取数据的结构,类似于数据库表结构。 - **Item Loaders**:将抓取的文本数据转换为结构化数据(Item)。 - **Scrapy Shell**:一个交互式调试工具,支持测试选择器、请求和响应。 - **Item Pipeline**:处理爬取到的 Item,用于清洗、验证和存储数据。 - **请求与响应(Requests and Responses)**:定义爬取的 URL 和处理响应的逻辑。 - **链接提取器(Link Extractors)**:从页面中提取链接并生成新的爬取请求。 - **设置(Settings)**:全局配置 Scrapy 的行为,包括下载器中间件、日志记录等。 - **异常处理(Exceptions)**:定义了 Scrapy 中的异常类型和处理机制。 #### 2. **内置服务** - **日志记录(Logging)**:提供灵活的日志记录功能,支持不同级别的日志输出。 - **统计收集(Stats Collection)**:记录爬虫运行期间的各项指标和统计信息。 - **发送邮件(Sending e-mail)**:配置后可将爬虫状态或结果通过邮件通知。 - **Telnet 控制台(Telnet Console)**:通过 Telnet 连接爬虫,实时调试和监控。 #### 3. **解决特定问题** - **常见问题(FAQ)**:提供爬虫开发中常见问题的解答。 - **调试爬虫(Debugging Spiders)**:介绍如何调试爬虫,包括日志、断点调试等方法。 - **爬虫合同(Spiders Contracts)**:用于验证爬虫的行为,确保其符合预期。 - **常见做法(Common Practices)**:推荐的开发模式和最佳实践。 - **大规模爬取(Broad Crawls)**:介绍如何高效地进行大规模爬取。 - **动态内容抓取(Selecting dynamically-loaded content)**:处理通过 JavaScript 加载的内容。 - **内存泄漏调试(Debugging memory leaks)**:提供检测和解决内存泄漏的方法。 - **文件和图片下载(Downloading and processing files and images)**:介绍如何处理文件和图片的下载。 - **部署爬虫(Deploying Spiders)**:提供将爬虫部署到生产环境的指导。 - **AutoThrottle 扩展(AutoThrottle extension)**:自动调整爬取速度,避免被目标网站封禁。 #### 4. **版本更新** - **Scrapy 2.7.1**: - 新增功能:恢复 Proxy-Authentication 头的设置兼容性。 - 修复问题:处理输出选项冲突、弃用 asyncio API 等。 - 文档更新:升级《贡献者行为准则》、修复拼写错误。 - 质量改进:重新启用flake8检查、现代化CI配置。 - **Scrapy 2.7.0**: - **新功能**: - 支持 Python 3.11,移除对 Python 3.6 的支持。 - 默认启用异步回调支持。 - 允许输出字段名为任意字符串。 - 新增 `process_spider_output()` 的异步生成器支持。 - 新项目默认启用 asyncio 支持。 - **改进**: - 优化代码检查生成器返回值的逻辑。 - 提升 `Selector` API 的性能和易用性(通过 Parsel 1.5)。 - Telnet 控制台新增安全验证。 - **弃用**: - `ImagesPipeline.thumb_path` 必须接受 `item` 参数。 - `scrapy.downloadermiddlewares.decompression` 模块被弃用。 - **其他版本更新**: - **Selector API 变更**:Parsel 1.5 引入了更简洁的 `.get()` 和 `.getall()` 方法,取代 `.extract_first()` 和 `.extract()`,同时新增 `Selector.attrib` 和 `SelectorList.attrib` 属性。 - **Telnet 控制台**:新增用户名和密码验证,提升安全性。 - **扩展性改进**:新增 `from_crawler` 支持,允许自定义扩展访问 Scrapy 设置和蜘蛛。 #### 5. **其他重要信息** - **模块重定位**:移除了部分兼容性 shim,建议更新代码以符合最新模块结构。 - **新功能**:新增 `dont_redirect` 和 `dont_retry` 元数据键,控制爬取行为。 - **文档改进**:更新了命令行工具文档、新增调试浏览器工具的教程、优化了安装说明。 总结:Scrapy 2.7 版本在性能、兼容性、安全性和易用性方面均有显著提升,新增了多项功能和改进,推荐开发者升级到最新版本以获得更好的体验。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 394 页请下载阅读 -
文档评分
请文明评论,理性发言.