scrapy-Redis 分布式爬虫

本文介绍如何将Scrapy项目改造成Scrapy-Redis分布式爬虫,包括配置多台机器进行数据抓取、利用Redis统一调度爬虫任务等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抓取大量数据是时,一个机器爬取过于缓慢,所以需要多台机器一起进行爬取。

1. 使用scrapy框架搭建爬虫项目

创建爬取B站视频信息的scrapy爬虫项目

  1. middlewares.py文件
    设置中间件,定义随机的IP代理
    防止B站的IP屏蔽处理

定义随机筛选IP

2 pipeline.py文件
设置连接的数据库,保存采集数据,数据库的属性在settings文件设置。
连接MongoDB数据库

3 settings.py文件
scrapy项目的一般设置
设置user-agent,禁止robot协议
请求头的其他属性设置
中间件代理IP的设置
保存数据管道
连接的MongoDB数据库属性

2.开发爬虫

具体爬虫文件
重写start_requests函数,实现生成起始路由列表
将得到数据由parse解析,传递给管道保存。

3. 现在开始将这个scrapy项目进行简单改成scrapy-redis分布式爬虫

1 settings文件设置
添加设置
这里是将调度器采用scrapy-redis库的调度,舍弃原本框架自己的,有Redis数据库实现,也是为了实现多个爬虫项目使用同一个调度器,实现Redis数据库统一调度。
2 更改爬虫文件
爬虫文件

1.引入scrapy-redis的爬虫类
2. 将爬虫继承scrapy-redis的爬虫类
3. 将start-urls舍去,改为redis-key,起始爬虫路由是由Redis数据库输入。
4. 新的路由由函数处理后产生。

3 启动爬虫

*1. 启动MongoDB数据库
mongod –dbpath 数据库路径。
*2.启动Redis数据库
进入数据库位置,进入cmd命令行(此处为Windows上)
redis-server.exe redis.windows.conf
*3.Redis数据库客户端连接
redis-cli.exe
*4. 启动scrapy-redis分布式爬虫项目
启动多个项目后,所有项目进入等待,等待用户从Redis推入起始路由。
*5.推入起始路由,爬虫开始运行
lpush myspider:start_urls 起始网页地址
爬虫开始运行。

4个爬虫一起运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值