linux分布式scrapy爬虫之安装scrapy-redis
来源:互联网 发布:利搜排名软件 编辑:程序博客网 时间:2024/06/05 19:03
安装完redis后,进入到redis目录下
输入redis-cli 会有提示安装 sudo apt-get install redis-tools
再输入:redis-server /etc/redis.conf 会有提示安装:sudo apt-get install redis-server
测试:
输入:hadoop@slave1:~/.local/lib/python2.7/site-packages/redis$ redis-cli
127.0.0.1:6379>
修改配置文件::
hadoop@slave1:/etc/redis$ sudo vi redis.conf
#bind 127.0.0.1 改为 bind 0.0.0.0
远程访问:需要将 /etc/redis/redis.conf 的bind 127.0.0.1 改为 bind 0.0.0.0
然后输入: ps -ef | grep redis 查看进程:
redis 1193 1 0 12:41 ? 00:00:00 /usr/bin/redis-server 0.0.0.0:6379 //这个地方是0.0.0.0:6379或者是 *:6379,表示其他ip可以访问
hadoop 1715 1700 0 12:46 pts/0 00:00:00 grep --color=auto redis
测试:hadoop@slave1:/etc/redis$ redis-cli -h 192.168.71.128 -p 6379
192.168.71.128:6379>
报错:No matching distribution found for PIL 名字换了使用sudo pip install pillow
报错:No matching distribution found for mysqldb 安装MySQLdb模块,应该用MySQL-python,所以sudo pip install mysql-python
报错:mysql-python安装时EnvironmentError: mysql_config not found 只要原因是没有安装:libmysqlclient-dev 所以:sudo apt-get install libmysqlclient-dev
注意:如果要重新运行爬虫记得把master上的redis清空,因为master里的数据库“dmoz:dupefilter”是用来过滤重复的请求
192.168.71.128:6379> flushdb
使用命令:sudo vim /etc/redis/redis.conf 进行修改:
1、将保护模式设置为no:
如果不设置此处的话,windows下访问redis直接崩溃。
2、bind ip注释掉:
如果不注释掉,只有本地可以访问redis,windows是不能访问的。
接下来重启我们的redis服务,使用命令sudo service redis restart
启动分布式爬虫:
使用很简单 pip install scrapy-redis 安装
然后修改常规spider文件
1.引入RedisCrawlSpider和RedisSpider一样
from weibo.scrapy_redis.spiders import RedisSpider ##这个scrapy_redis文件夹在weibo项目文件下,所以引入使用weibo.scrapy_redis.spiders
2.将spider类继承改为RedisSpider
class Weibo(RedisSpider):
3.将
start_urls = (
'https://www.weibo.com',
)
替换为
redis_key = 'weibospider:start_urls'
4.然后在setting里面设置redis数据库的地址等
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
SCHEDULER_PERSIST = True
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'
REDIS_URL = 'redis://192.168.71.129:6379'
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
5.然后启动爬虫,发现如下:
2017-10-20 17:09:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-10-20 17:09:03 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-20 17:10:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-10-20 17:11:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
说明正在等待请求的urls,爬虫属于饥渴状态!!
此时已经在使用redis管理url队列,但是redis里面还没有start_urls
使用命令在master端输入:redis-cli
127.0.0.1:6379> lpush weibospider:start_urls https://weibo.cn/2810373291/fans
(integer) 1
127.0.0.1:6379>
将start_urls push进redis
回头去看爬虫程序,如下:
2017-10-20 17:11:01 [weibospider] DEBUG: Read 1 requests from 'weibospider:start_urls'
2017-10-20 17:11:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://weibo.cn/2810373291/fans> (referer: None)
说明了从redis中取出了刚刚放进入的start_urls,然后爬虫就会开始爬取了哦
中途任意时间可以运行上面的命令将start_urls push进redis 进行爬取
输入redis-cli 会有提示安装 sudo apt-get install redis-tools
再输入:redis-server /etc/redis.conf 会有提示安装:sudo apt-get install redis-server
测试:
输入:hadoop@slave1:~/.local/lib/python2.7/site-packages/redis$ redis-cli
127.0.0.1:6379>
修改配置文件::
hadoop@slave1:/etc/redis$ sudo vi redis.conf
#bind 127.0.0.1 改为 bind 0.0.0.0
远程访问:需要将 /etc/redis/redis.conf 的bind 127.0.0.1 改为 bind 0.0.0.0
然后输入: ps -ef | grep redis 查看进程:
redis 1193 1 0 12:41 ? 00:00:00 /usr/bin/redis-server 0.0.0.0:6379 //这个地方是0.0.0.0:6379或者是 *:6379,表示其他ip可以访问
hadoop 1715 1700 0 12:46 pts/0 00:00:00 grep --color=auto redis
测试:hadoop@slave1:/etc/redis$ redis-cli -h 192.168.71.128 -p 6379
192.168.71.128:6379>
报错:No matching distribution found for PIL 名字换了使用sudo pip install pillow
报错:No matching distribution found for mysqldb 安装MySQLdb模块,应该用MySQL-python,所以sudo pip install mysql-python
报错:mysql-python安装时EnvironmentError: mysql_config not found 只要原因是没有安装:libmysqlclient-dev 所以:sudo apt-get install libmysqlclient-dev
注意:如果要重新运行爬虫记得把master上的redis清空,因为master里的数据库“dmoz:dupefilter”是用来过滤重复的请求
192.168.71.128:6379> flushdb
使用命令:sudo vim /etc/redis/redis.conf 进行修改:
1、将保护模式设置为no:
如果不设置此处的话,windows下访问redis直接崩溃。
2、bind ip注释掉:
如果不注释掉,只有本地可以访问redis,windows是不能访问的。
接下来重启我们的redis服务,使用命令sudo service redis restart
启动分布式爬虫:
使用很简单 pip install scrapy-redis 安装
然后修改常规spider文件
1.引入RedisCrawlSpider和RedisSpider一样
from weibo.scrapy_redis.spiders import RedisSpider ##这个scrapy_redis文件夹在weibo项目文件下,所以引入使用weibo.scrapy_redis.spiders
2.将spider类继承改为RedisSpider
class Weibo(RedisSpider):
3.将
start_urls = (
'https://www.weibo.com',
)
替换为
redis_key = 'weibospider:start_urls'
4.然后在setting里面设置redis数据库的地址等
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
SCHEDULER_PERSIST = True
SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.SpiderPriorityQueue'
REDIS_URL = 'redis://192.168.71.129:6379'
REDIS_HOST = '127.0.0.1'
REDIS_PORT = 6379
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
5.然后启动爬虫,发现如下:
2017-10-20 17:09:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-10-20 17:09:03 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-20 17:10:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-10-20 17:11:03 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
说明正在等待请求的urls,爬虫属于饥渴状态!!
此时已经在使用redis管理url队列,但是redis里面还没有start_urls
使用命令在master端输入:redis-cli
127.0.0.1:6379> lpush weibospider:start_urls https://weibo.cn/2810373291/fans
(integer) 1
127.0.0.1:6379>
将start_urls push进redis
回头去看爬虫程序,如下:
2017-10-20 17:11:01 [weibospider] DEBUG: Read 1 requests from 'weibospider:start_urls'
2017-10-20 17:11:03 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://weibo.cn/2810373291/fans> (referer: None)
说明了从redis中取出了刚刚放进入的start_urls,然后爬虫就会开始爬取了哦
中途任意时间可以运行上面的命令将start_urls push进redis 进行爬取
阅读全文
0 0
- linux分布式scrapy爬虫之安装scrapy-redis
- Scrapy-redis分布式爬虫
- 爬虫-09-scrapy-redis分布式爬虫
- Python之Scrapy框架Redis实现分布式爬虫详解
- 使用scrapy-redis分布式爬虫 准备工作
- scrapy-redis分布式爬虫原理分析
- 使用scrapy-redis实现分布式爬虫
- 从零搭建Redis-Scrapy分布式爬虫
- scrapy-redis分布式爬虫的搭建过程
- 网络爬虫--scrapy-redis安装教程
- 爬虫实践之爬虫框架Scrapy安装
- 关于安装scrapy-redis分布式常见问题
- scrapy-redis实现爬虫分布式爬取分析与实现
- 使用scrapy,redis, mongodb实现的一个分布式网络爬虫
- scrapy-redis实现爬虫分布式爬取分析与实现
- 基于Python,scrapy,redis的分布式爬虫实现框架
- 基于scrapy和redis的分布式爬虫环境搭建
- 使用scrapy-redis构建简单的分布式爬虫
- Liferay6.2开发之使用Search-Container
- iOS 使用AFNet上传图片(多张)
- xcopy中提示“无效的参数数量”的解决方法
- React-Native ART 绘图简析
- CODE[VS]1028 花店橱窗布置
- linux分布式scrapy爬虫之安装scrapy-redis
- 第一个threejsplaygnd 3js
- 三种编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)
- 网址收藏
- maven多环境配置
- android 特殊字符(Html)转换正常
- Mac OS X终端(iterm) javac乱码的解决
- 关于在StoryBoard中的view在代码中设置frame无效问题
- Linux 文件类型含义