Scrapy 2.13 文档
Scrapy 是一个快速高级的网络爬虫和网络抓取框架,用于爬取网站并从中提取结构化数据。它可用于广泛的用途,从数据挖掘到监控和自动化测试。
获取帮助
遇到麻烦了吗?我们乐意提供帮助!
- 请查看常见问题 – 它包含了一些常见问题的答案。 
- 在scrapy-users 邮件列表存档中搜索问题。 
- 在#scrapy IRC 频道提问, 
- 在我们的issue tracker 中报告 Scrapy 的 bug。 
- 加入 Discord 社区 Scrapy Discord。 
入门
基本概念
- 命令行工具
- 了解用于管理 Scrapy 项目的命令行工具。 
- Spiders (爬虫)
- 编写爬取网站的规则。 
- Selectors (选择器)
- 使用 XPath 从网页中提取数据。 
- Scrapy shell (Scrapy shell)
- 在交互式环境中测试你的提取代码。 
- Items (项目)
- 定义你要抓取的数据。 
- Item Loaders (项目加载器)
- 使用提取的数据填充你的 items。 
- Item Pipeline (项目管道)
- 后处理和存储你的抓取数据。 
- Feed exports (数据导出)
- 使用不同的格式和存储方式输出你的抓取数据。 
- Requests 和 Responses (请求与响应)
- 了解用于表示 HTTP 请求和响应的类。 
- Link Extractors (链接提取器)
- 方便的类,用于从页面中提取要跟踪的链接。 
- Settings (设置)
- 了解如何配置 Scrapy 并查看所有可用设置。 
- Exceptions (异常)
- 查看所有可用异常及其含义。 
内置服务
- Logging (日志记录)
- 了解如何在 Scrapy 中使用 Python 内置的 logging。 
- Stats Collection (统计信息收集)
- 收集关于你的爬虫的统计信息。 
- 发送电子邮件
- 在特定事件发生时发送电子邮件通知。 
- Telnet Console (Telnet 控制台)
- 使用内置的 Python 控制台检查正在运行的爬虫。 
解决特定问题
- 常见问题
- 获取最常见问题的答案。 
- 调试 Spiders
- 了解如何调试 Scrapy spider 的常见问题。 
- Spiders Contracts (爬虫契约)
- 了解如何使用 contracts 测试你的 spiders。 
- 常见实践
- 熟悉一些 Scrapy 的常见实践。 
- 大规模抓取
- 调整 Scrapy 以并行爬取多个域名。 
- 使用浏览器开发者工具进行抓取
- 了解如何使用浏览器开发者工具进行抓取。 
- 选择动态加载的内容
- 读取动态加载的网页数据。 
- 调试内存泄漏
- 了解如何查找和解决爬虫中的内存泄漏。 
- 下载和处理文件及图片
- 下载与抓取到的 items 相关联的文件和/或图片。 
- 部署 Spiders
- 部署你的 Scrapy spiders 并在远程服务器上运行它们。 
- AutoThrottle 扩展
- 根据负载动态调整爬取速度。 
- 性能测试
- 检查 Scrapy 在你的硬件上的性能。 
- Jobs: 暂停和恢复爬取
- 了解如何暂停和恢复大规模 spiders 的爬取。 
- Coroutines (协程)
- 使用协程语法。 
- asyncio
扩展 Scrapy
- 架构概览
- 理解 Scrapy 架构。 
- Add-ons (附加组件)
- 启用和配置第三方扩展。 
- Downloader Middleware (下载器中间件)
- 自定义页面的请求和下载方式。 
- Spider Middleware (爬虫中间件)
- 自定义 spiders 的输入和输出。 
- Extensions (扩展)
- 使用自定义功能扩展 Scrapy 
- Signals (信号)
- 查看所有可用信号以及如何使用它们。 
- Scheduler (调度器)
- 理解调度器组件。 
- Item Exporters (项目导出器)
- 快速将抓取的 items 导出到文件 (XML, CSV 等)。 
- 组件
- 学习构建自定义 Scrapy 组件时的通用 API 和一些良好实践。 
- 核心 API
- 在 extensions 和 middlewares 中使用它来扩展 Scrapy 功能。 
其他
- 发布说明
- 查看 Scrapy 最新版本中的变化。 
- 贡献 Scrapy
- 学习如何为 Scrapy 项目做贡献。 
- 版本控制和 API 稳定性
- 理解 Scrapy 版本控制和 API 稳定性。