当前位置:   article > 正文

部署scrapy分布式爬虫_scrapy分布式 window

scrapy分布式 window

部署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
  • 2
  • 3
  • 4
  • 5

二,开始部署

  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中,再回去看我们的爬虫是不是跑起来了
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/208125
推荐阅读
相关标签
  

闽ICP备14008679号