zoukankan      html  css  js  c++  java
  • 分布式爬虫

    pip install scrapy-redis

    scrapy genspider -t crawl xxx www.xxx.com

    class ChoutiSpider(RedisCrawlSpider):
    name = 'chouti'
    # allowed_domains = ['www.chouti.com']
    # start_urls = ['http://www.chouti.com/']
    redis_key = 'chouti'
    rules = (
    Rule(LinkExtractor(allow=r'/hot/d+'), callback='parse_item', follow=True),
    )
    #setting 中设置
    
    
    使用组件中封装好的可以被共享的管道类:
            ITEM_PIPELINES = {
                'scrapy_redis.pipelines.RedisPipeline': 400
                }

    配置调度器(使用组件中封装好的可以被共享的调度器) # 增加了一个去重容器类的配置, 作用使用Redis的set集合来存储请求的指纹数据, 从而实现请求去重的持久化
    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 使用scrapy-redis组件自己的调度器 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 配置调度器是否要持久化, 也就是当爬虫结束了, 要不要清空Redis中请求队列和去重指纹的set。如果是True, 就表示要持久化存储, 就不清空数据, 否则清空数据 SCHEDULER_PERSIST = True 指定存储数据的redis: REDIS_HOST = 'redis服务的ip地址' REDIS_PORT = 6379


    配置redis数据库的配置文件 取消保护模式:protected-mode no bind绑定: #bind 127.0.0.1 - 启动redis 6.执行分布式程序 scrapy runspider xxx.py 7.向调度器队列中仍入一个起始url: 在redis-cli中执行:
  • 相关阅读:
    判断DataReader中是否有指定列
    datatable dateset 载体传递数据、存储过程
    抓取网页信息
    捕获异常 winform
    修改myeclipse的jsp模板
    包装设计模式的实现以改进BufferedReader中的readLine方法为例
    查询图书馆借书情况-代码
    查询四六级成绩
    Sqlyog增加试用期
    MVC笔记-模板页布局
  • 原文地址:https://www.cnblogs.com/ls1997/p/10878209.html
Copyright © 2011-2022 走看看