scrapy_redis(分布式爬取)

创建scrapy项目

scrapy startproject 项目名

创建爬虫

scrapy genspider 爬虫名 爬取网站地址

修改spiders下面的py文件

from scrapy_redis.spiders import RedisSpider

class ManhuataiSpider(RedisSpider):
    name = 'manhuatai'  # 爬虫名
    allowed_domains = ['www.manhuatai.com']  # 搜索域名范围
    redis_key = 'myspider:start_urls'  # 添加指定url(不要默认启动地址)

    def parse(self, response):
        pass

修改配置文件 settings.py

# 使用scrapy_redis的去重组件, 在redis中去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 使用了scrapy_redis的调度器,在redis里分配请求
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 在redis中保持scrapy_redis用到各个队列(不清理redis queues)可暂停和恢复
SCHEDULER_PERSIST = True
# redis服务器地址
REDIS_HOST = '192.168.21.176'
# 端口
REDIS_PORT = 6379
# 设置cmd中的输出级别
LOG_LEVEL = 'ERROR'
# 编码
FEED_EXPORT_ENCODING = 'utf-8'

通过 scrapy 方法执行爬虫的py文件(也可以分次执行多条),爬虫(们)将处于等待准备状态:

scrapy runspider 爬虫名

在Master端的redis-cli输入push指令

或者在Redis可视化工具中执行

lpush myspider:start_urls 需要爬取网站的初始网址

可将数据保存为mongoDB,详细擦看

posted @ 2019-03-04 17:46  Lonely虐心  阅读(112)  评论(0编辑  收藏  举报