zoukankan      html  css  js  c++  java
  • 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,详细擦看

  • 相关阅读:
    Vue--vue-Router
    Vue--vue中的组件、组件绑定事件和数据、私有组件、子组件,父子组件参数互传
    CF 631C report
    生日Party 玄学多维DP
    HDU-6376 度度熊剪纸条
    CF 1012C Dp
    CF 997A
    HDU-1051 一个DP问题
    偶尔间看到,来开心一下
    合并石子
  • 原文地址:https://www.cnblogs.com/cp9648/p/10472101.html
Copyright © 2011-2022 走看看