欢迎投稿

今日深度:

scrapy-redis分布式组件,scrapy-redis

scrapy-redis分布式组件,scrapy-redis


启动redis

查看redis进程

ps aux|grep redis

关闭redis进程

sudo service redis stop

启动redis进程

sudo service redis start

查看redis进程

ps aux|grep redis

Redis的安装配置window

 1. 列表内容修改配置文件redis.conf(版本不同,名字会有出入)
 2. 将bind 127.0.0.1这个参数注掉
 3. 命令行(管理员权限)中执行
 4. redis-server <配置文件路径>

Redis的安装配置mac ##

 1. 找到配置文件并进行修改
 2. 注销bind 127.0.0.1配置,表明允许远程连接
 3. 启动redis服务器
 4. sudo redis-server <配置文件路径>

redis安装与配置linux

启动redis

sudo redis-server

Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 没有配置文件,使用的是默认的配置文件

退出执行

Ctrl + C
cd /etc/redis
ls

/etc/redis ls出现下

redis.conf  redis-server.post-down.d  redis-server.post-up.d  redis-server.pre-down.d  redis-server.pre-up.d
sudo vim redis.conf

修改

 68 # bind 192.168.1.100 10.0.0.1
 69 #bind 127.0.0.1     注释掉bind 127.0.0.1配置,表明允许远程连接

修改配置文件

sudo vim redis.conf
 42 daemonize  yes   yesno改为yes

  远程数据服务,设置redis数据库以守护进程启动,window不能设置

启动redis服务器

sudo redis-server /etc/redis/redis.conf

连接测试
1.master端 redis-cli
2.非master端 redis-cli -h master_ip

安装scrapy-redis组件

pip3 install scrapy_redis

scrapy-redis分布式组件

分布式

分布式爬虫问题其实也就是多台机器多个 spider 对 多个 url 的同时处理问题,怎样 schedule 这些 url,怎样汇总 spider 抓取的数据。
就是把 url 存在某个地方,共享给所有的机器,总的调度器来分配请求,判断 spider 有没有闲置,闲置了就继续给它任务,直到所有的 url 都爬完,这种方法解决了去重问题,也能提高性能,scrapy-redis 就实现了这样一个完整框架

优点:

    提升了项目的整体速度
    单个节点不稳定不会影响整个任务执行

为什么要使用该组件
Scrapy多个spider不能共享待爬取队列,自身并不支持分布式爬虫

scrapy-redis组件的逻辑:
该组件粘合了redis数据库和scrapy框架,完美的解决了scrapy框架无法进行分布式数据采集的缺点

scrapy与scrapy-redis 区别

克隆案例到本地
git clone https://github.com/rolando/scrapy-redis.git

案例dmoz爬虫
    特性:
        1.数据,请求队列,去重都在redis数据库中进行
        2.爬虫中断会从停止处继续执行 
案例myspider_redis爬虫
    特性:
        1.使用redis_key代替了起始url列表
        2.允许的域名可以通过__init__方法自动获取
        3.使用scrapy runspider 爬虫文件名的形式启动
        4.启动之后自动等待任务下发
        5.任务完成之后再次进入等待状态

项目开发

1.创建项目,使用命令创建爬虫项目
2.明确目标,分析目标站点,明确需要采集的数据,并且建立模型

修改爬虫为分布式

1.修改爬虫文件

        1)导入分布式爬虫类
        2)修改爬虫的继承
        3)注销allowed_domains和start_urls
        4)重写__init__()方法(可选)
        5)添加redis_key

2.修改配置文件

    使用官方案例的配置文件进行修改
    配置redis数据库地址

分布式爬虫先完成普通爬虫,在修改为分布式爬虫

www.htsjk.Com true http://www.htsjk.com/redis/26702.html NewsArticle scrapy-redis分布式组件,scrapy-redis 启动redis 查看redis进程 ps aux |grep redis 关闭redis进程 sudo service redis stop 启动redis进程 sudo service redis start 查看redis进程 ps aux |grep redis Redis的安装配置window...
相关文章
    暂无相关文章
评论暂时关闭