Scrapy-Redis 快速入门教程
scrapy-redis项目地址:https://gitcode.com/gh_mirrors/scr/scrapy-redis
1. 项目目录结构及介绍
scrapy-redis
的目录结构如下:
scrapy-redis/
├── scrapy_redis/
│ ├── __init__.py
│ ├── middleware.py
│ ├── pools.py
│ ├── queues.py
│ └── scheduler.py
├── tests/
│ ├── __init__.py
│ ├── testqueues.py
│ └── testsuite.py
├── examples/
│ ├── __init__.py
│ └── exampleproject/
│ ├── scrapy.cfg
│ ├── spiders/
│ │ └── simple_spider.py
│ └── items.py
└── README.md
scrapy_redis
: 该目录包含了Scrapy-Redis的核心组件,包括调度器(scheduler.py
)、中间件(middleware.py
)、队列(queues.py
)以及连接池(pools.py
)。tests
: 测试目录,用于验证Scrapy-Redis各个部分的功能。examples
: 示例项目目录,提供了一个简单的Scrapy项目,演示如何集成Scrapy-Redis。README.md
: 项目说明文档。
2. 项目的启动文件介绍
在 exampleproject/
目录下的 simple_spider.py
文件中,你可以找到一个基本的Scrapy蜘蛛示例,它使用了Scrapy-Redis的功能。启动文件的主要部分如下:
import scrapy
from scrapy.crawler import CrawlerProcess
from scrapy_redis.spiders import RedisSpider
class SimpleSpider(RedisSpider):
name = 'simple'
redis_key = 'start_urls'
allowed_domains = ['example.com']
start_urls = []
def parse(self, response):
# ... 解析响应并提取数据 ...
yield item
SimpleSpider
继承自scrapy_redis.spiders.RedisSpider
,这意味着它会从Redis获取起始URL。redis_key
属性设置为'start_urls'
,表示在Redis中的key用来存储初始请求。CrawlerProcess
在外部运行,用于启动爬虫进程。
启动示例项目的方式是:
cd examples/exampleproject
scrapy crawl simple
3. 项目的配置文件介绍
Scrapy-Redis的配置主要通过Scrapy的配置文件 settings.py
或者命令行参数完成。对于示例项目,scrapy.cfg
中指定了基本配置:
[settings]
default = exampleproject.settings
[deploy]
url = http://localhost:6800/
project = exampleproject
在 exampleproject/settings.py
文件中,你需要设置以下Scrapy-Redis相关的项:
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
REDIS_SERVER = "redis://localhost:6379/"
REDIS_PARAMS = {
'db': 0,
'socket_timeout': 3,
}
SCHEDULER_PERSIST = True
SCHEDULER
和DUPEFILTER_CLASS
分别指定了使用Scrapy-Redis的调度器和去重过滤器。REDIS_SERVER
是你的Redis服务器地址,包括端口号。REDIS_PARAMS
提供了额外的Redis连接参数,如数据库索引和超时时间。SCHEDULER_PERSIST
设置是否保存Redis队列的状态,以便在爬虫重启时继续爬取未完成的任务。
通过修改这些设置,你可以根据自己的需求调整Scrapy-Redis的行为。
scrapy-redis项目地址:https://gitcode.com/gh_mirrors/scr/scrapy-redis