部署scrapy分布式爬虫

部署scrapy分布式爬虫

系统版本为:win10 python3.7
要求:两台及两台以上电脑,其中一台电脑上面安装了MySQL8.0 ,redis(我们称之为服务机),其余不用配置数据库

一,准备工作
1. 修改MySQL的my.ini文件,以MySQL8.0为例路径在C:\ProgramData\MySQL\MySQL Server 8.0找到sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"这一行把里面的“STRICT_TRANS_TABLES,”删除(逗号也删除),保存文件修改过之后需要重启mysql服务在windows命令窗口中使用net stop mysql80先停止服务,再使用net start mysql80启动服务,(如果命令关闭不掉,可以右键计算机,点击管理 — 服务和应用程序 — 服务 — MySQL80,停止再启动)
2. 创建用户,修改权限
有关数据库MySQL部分,这里是8.0版本的写法;
第一步:通过mysql -uroot -p登录MySQL服务。
第二步:
①:创建用户create user myroot identified by ‘123456’;(注意一定要带上分号)
②:赋予权限grant all privileges on . to ‘myroot’@’%’;(注意一定要带上分号)
. 表示所有数据库中的所有表都能够被远程连接
‘%’ 表示任意IP都可以进行链接
‘myroot’ 具有远程连接权限的自定义用户名,之后就使用这个用户连接数据库(也可用可视化工具创建,连接数据库,找到mysql中的user表,创建用户,把权限修改为%)

在这里插入图片描述
第三步:再去修改爬虫项目中有关数据库的配置。
MYSQL_HOST = ‘服务机ip’
MYSQL_DBNAME = ‘数据库名’
MYSQL_USER = ‘用户名’
MYSQL_PASSWORD = ‘密码’
MYSQL_CHARSET = ‘utf8’
*3. 修改redis.windows.conf配置文件,修改内容如下:

# 配置远程IP地址,供其他的电脑进行连接redis
bind: (服务机IP) xxx.xxx.xx.xx

# 关闭redis保护模式
protected-mode: no*

二,开始部署

  1. 安装scrapy_redis模块
  2. 配置文件
    1>. 打开你要部署分布式的爬虫文件,找到settings,添加
    SCHEDULER = “scrapy_redis.scheduler.Scheduler”
    DUPEFILTER_CLASS = “scrapy_redis.dupefilter.RFPDupeFilter”
    打开 : ITEM_PIPELINES = {
    ‘scrapy_redis.pipelines.RedisPipeline’: 300
    }
    在这里插入图片描述
    myroot: 自定义的redis链接。IP:开启redis-server服务的这台电脑的IP
    在这里插入图片描述
    2>. 修改爬虫文件
    导入模块from scrapy_redis.spiders import RedisSpider,注释start_urls ,设置 redis_key
    在这里插入图片描述
    3>. 将配置好的项目拷贝到不同的电脑中
    4>. 选择其中一台机器,开启redis-server服务
    5>. 让所有爬虫项目都运行起来,由于没有起始的url,所有爬虫会暂时处于停滞状态
    在这里插入图片描述
    6>. 所有爬虫都启动之后,部署redis-server服务的电脑,再打开一个命令窗口,通过命令redis-cli回车 lpush jobbole:start_urls 启动网址 向redis的queue中添加起始的url
    在这里插入图片描述
    7>. 所有爬虫开始运行,爬取数据,同时所有的数据都会保存到该爬虫所连接的远程数据库以及远程redis中,再回去看我们的爬虫是不是跑起来了
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值