Scrapy 2.3 Documentation
1.36 MB
352 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档详细介绍了Scrapy 2.3的功能和使用方法,涵盖了命令行工具、项目结构、蜘蛛创建、Item Pipeline、Feed Exports等核心概念。其中,命令行工具用于执行各种Scrapy命令,如设置获取、蜘蛛运行和基准测试;项目结构展示了典型的Scrapy项目目录和文件;Item Pipeline用于处理和存储抓取的数据;Feed Exports支持将数据导出为多种格式,如JSON、CSV和XML。文档还介绍了如何自定义Scrapy命令以及在脚本中运行Scrapy。 | ||
AI总结 | ||
《Scrapy 2.3 Documentation》主要介绍了Scrapy框架的核心概念、命令行工具、项目结构及配置、蜘蛛开发、数据处理等内容。以下是文档的核心内容总结:
---
### **1. 命令行工具**
Scrapy提供了多个命令行工具,用于项目管理、配置查询、运行蜘蛛等操作:
- **`parse`**:测试解析代码,例如:
```bash
scrapy parse http://www.example.com/ -c parse_item
```
- **`settings`**:获取Scrapy配置设置值,例如:
```bash
scrapy settings --get BOT_NAME
```
- **`runspider`**:运行单个Python文件中的蜘蛛,无需创建项目:
```bash
scrapy runspider myspider.py
```
- **`version`**:显示Scrapy版本信息。
- **`bench`**:运行快速基准测试。
- **`custom commands`**:支持通过`COMMANDS_MODULE`设置或`entry_points`添加自定义命令。
---
### **2. 项目结构**
Scrapy项目默认结构如下:
```
project_root/
├── scrapy.cfg
└── myproject/
├── __init__.py
├── items.py # 定义数据项
├── middlewares.py # 中间件
├── pipelines.py # 项处理管道
├── settings.py # 项目配置
└── spiders/ # 跨页面请求
├── __init__.py
└── spider1.py
```
通过`scrapy startproject`创建新项目,例如:
```bash
scrapy startproject tutorial
```
---
### **3. 蜘蛛开发**
蜘蛛(Spider)用于抓取信息,从页面中提取数据:
- 蜘蛛是`scrapy.Spider`的子类,定义初始请求和解析方法。
- 示例:创建`quotes_spider.py`文件,抓取并保存网页内容:
```python
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
def start_requests(self):
urls = ['http://quotes.toscrape.com/page/1/']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
```
---
### **4. 数据处理**
- **Items**:定义需要抓取的数据结构。
- **Item Loaders**:加载并清洗数据。
- **Item Pipeline**:处理和存储抓取的数据,通过`ITEM_PIPELINES`配置:
```python
ITEM_PIPELINES = {
'myproject.pipelines.PricePipeline': 300,
'myproject.pipelines.JsonWriterPipeline': 800,
}
```
- **Feed Exports**:将抓取的数据导出为文件,支持多种格式(如JSON、CSV、XML)和存储后端。
---
### **5. 配置设置**
Scrapy通过设置(Settings)进行配置,常用设置包括:
- `BOT_NAME`:爬虫名称。
- `DOWNLOAD_DELAY`:请求间隔。
- `FEED_EXPORTERS`:自定义导出格式。
- DNS和下载相关设置,如`DNSCACHE_ENABLED`、`DOWNLOADER`等。
---
### **6. 解决特定问题**
- **检测检查运行**:通过`SCRAPY_CHECK`环境变量检测是否为检查运行。
- **从脚本运行Scrapy**:使用`CrawlerProcess` API在脚本中运行蜘蛛:
```python
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess(settings={
"FEEDS": {
"items.json": {"format": "json"},
},
})
process.crawl(MySpider)
process.start()
```
---
### **7. 常见实践**
- **环境变量**:如`SCRAPY_PROJECT`、`SCRAPY_PYTHON_SHELL`等。
- **项目共享根目录**:通过`scrapy.cfg`中的设置别名支持多个项目。
---
以上总结了Scrapy 2.3文档的核心内容,涵盖了框架的基础概念、工具使用、项目开发和配置等关键信息。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
345 页请下载阅读 -
文档评分