当前位置: 首页 > news >正文

scrapy-redis 分布式爬虫

scrapy-redis 分布式爬虫

下载github官方给的案例: 地址:https://github.com/rmax/scrapy-redis
分析配置文件

setting.py

设置重复过滤器的模块
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"设置调度器,scrapy_redis中的调度器具备与数据库交互的功能
SCHEDULER = "scrapy_redis.scheduler.Scheduler"设置当爬虫结束时 是否保持redis中的 去重集合与任务队列(不要清空)
SCHEDULER_PERSIST = TrueITEM_PIPELINES = {"example.pipelines.ExamplePipeline": 300,# 开启管道 数据存到redis中"scrapy_redis.pipelines.RedisPipeline": 400,
}设置redis
REDIS_URL = "redis://127.0.0.1:6379"

分布式爬虫编写流程

  1. 编写普通爬虫
  • 创建项目
    scrapy startproject book
  • 明确目标
  • 创建爬虫
    cd book
    scrapy genspider jd_book jd.com
  • 保存内容
  1. 改造成分布式爬虫
  • 改造爬虫
    • 导入scrapy_redis中的分布式爬虫类
    • 继承类
    • 注销 start_urls & allowed-domains
    • 设置redis_key获取start_urls
    • 设置__init__获取允许的域
# ----1. 导入分布式爬虫类
from scrapy_redis.spiders import RedisSpider# ----2. 继承分布式爬虫类
class JdBookSpider(RedisSpider):
# class JdBookSpider(scrapy.Spider):name = "jd_book"
# ----3. 注销allowed_domains、start_urls# allowed_domains = ["jd.com", 'p.3.cn']# start_urls = ["https://book.jd.com/booksort.html"]
# ----4. 设置redis_keyredis_key = "py21"
# ----5. 设置__init__def __init__(self, *args, **kwargs):domain = kwargs.pop("domain", "")self.allowed_domains = filter(None, domain.split(","))super().__init__(*args, **kwargs)def parse(self, response):# 分析处理页面数据pass
  • 改造配置文件
    • Copy配置参数
      可以直接将案例中的配置文件拷贝之后修改
  • 多端启动分布式爬虫
cd book/book/spiders
scrapy runspider js_book.py
http://www.jsqmd.com/news/676654/

相关文章:

  • 最新护发精油排名:2026年必入的6款好物 - 博客万
  • 8个网盘直链下载终极指南:如何快速获取高速下载地址
  • 【紫光同创国产FPGA实战】——PDS开发环境一站式部署与避坑指南
  • 给DIY玩家:如何用GS12170-IBE3芯片,低成本给你的4K显示器加装专业SDI接口?
  • 构建企业级学术文档系统:浙江大学LaTeX论文模板的架构设计与性能优化
  • 开源硬件实现无人机高精度视觉着陆系统
  • 官方认证|2026年广东五大正规代理记账咨询公司排名,广州瑞讯财务咨询有限公司口碑断层领先 - 博客万
  • LinkSwift:八大网盘直链下载终极解决方案,告别限速困扰
  • 八大网盘直链解析工具:告别下载限速的完整解决方案
  • 2026年厦门大理石楼梯踏步厂家推荐排行榜:大理石/家装大理石/别墅装修石材/别墅装修大理石/灰色石材楼梯踏步 - 品牌策略师
  • 告别龟速下载!用中科大镜像5分钟搞定Haskell环境(GHCup + VSCode保姆级配置)
  • 基于RBF神经网络的车速预测模型及其在混动汽车能量管理中的应用研究
  • 手把手教你用VMware Workstation搭建FusionCompute 6.5.1实验环境(附网络避坑指南)
  • 给嵌入式Linux工程师的ZYNQ快速上手指南:从ARM到ARM+FPGA的思维转换
  • 当AI开始“制造“:智能工厂是提升效率还是取代工人?
  • 护发精油功效排行榜:抚平毛躁效果TOP 6 - 博客万
  • [a]有真东西要藏着,忽悠过去
  • 白光干涉测量不止于理论:如何用MATLAB仿真为你的光学传感器设计提供参考
  • 齿轮箱零部件及其装配质检中的TVA技术突破(17)
  • 别再只用标准卷积了!用PyTorch手把手实现MobileNetV1的深度可分离卷积(附完整代码)
  • nli-MiniLM2-L6-H768在数字人文中的应用:古籍摘录文本时代风格自动判定
  • 从IAP到涂鸦OTA:一个STM32工程师的实战笔记(附BootLoader与APP分区管理源码思路)
  • 2026晶振选型服务推荐榜单:专业服务商测评,覆盖恒温/车载/光模块/AI算力场景 - 博客湾
  • Desktop Postflop:免费开源的德州扑克GTO求解器深度解析
  • 每日安全情报报告 · 2026-04-21
  • 官方认证|2026年五大正规花都驾校排名,广州随约驾驶学校有限公司口碑断层领先 - 博客万
  • Mac NTFS读写终极指南:免费开源工具Nigate完整解决方案
  • ES8311音频Codec调试避坑指南:从读取ID失败到成功回环测试的全流程复盘
  • 深聊2026年讯灵AI,了解其服务,公司官方联系方式在此 - 工业品牌热点
  • 终极指南:如何在foobar2000中实现专业级逐字歌词同步体验