redis-scrapy详情

Item Pipeline:
引擎将(Spider返回的)爬取到的Item给Item Pipeline , scrapy-redis 的Item Pipeline将爬取到的Item存入redis的item queue

修改Item Pipeline可以很方便的根据key从items queue 提取item , 从而实现items proceses集群

redis 数据库 , 不负责爬取 , 只负责url指纹判重 , Request的分配 , 以及数据的存储

scrapy-redis 调度任务是Request对象 , 里面信息量比较大(包含url,callbase函数,headers等信息) , 导致结果降低爬虫速度 ,占中  
大量redis空间 , 想保证效率 , 需要硬件水平

分布式搭建

1.先安装redis
redis-cli  如果后面有ip地址 , 就是目标的数据库 , 没有ip就是本地的数据库

keys *  #显示所有的键
set 键 值 #设置一个值
get 键 值 #获取值

直接拿官方给的例子修改

#启动所有slaver端爬虫的指令 , 下面的格式时参考格式 , 建议采用这种格式
redis_key = '爬虫类名(myspider)(最好是,可以随便写):start_urls'

#发送指令
lpush myspider:start_urls 域名(http://xxxxx/)

和allowd_domain = ["dmoz.org"] 等效 , 指定爬取范围 , 都可以使用

动态获取爬取范围

::

def __init__(self,*args,**kwargs):

    domain = kwargs.pop('domain',"")
    self.allowed_domains = filter(None,domain.split(','))
    #修改下面的代码 , 动态获取爬取范围
    super(当前文件的第一个类名,self).__init__(*args,**kwargs)

删除所有redis键

//删除当前数据库中的所有key
flushdb
//删除所有数据库中的key
flushall

在服务器中使用后台运行 info.log 日志
nohup python3 main.py >info.log &

htop 查看后台运行进程

::

# 将.rst文件生成我的网页文档html
./make.bat html

github 上传文件命令或者更新文件
git add .
git commit -m .
git push origin_doc master

github克隆命令
git clone https://github.com/tkpy/tk.git

scrapy 参考文件: http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/settings.html

Slphinx 使用手册: https://zh-sphinx-doc.readthedocs.io/en/latest/contents.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化...
    Evtion阅读 11,242评论 12 18
  • 目录 前言 安装环境Debian / Ubuntu / Deepin 下安装Windows 下安装 基本使用初始化...
    无口会咬人阅读 12,241评论 2 45
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,374评论 4 46
  • 惠子的哺乳期 是有史以来最长的一例 听说三十年河东三十年河西 习惯了衣来伸手饭来张口的日子 惠子的牙齿逐渐退化变异...
    红学砖家阅读 1,254评论 0 4
  • 你说一切都是我情愿 恩 我认 认识你十三年 今天是第四千六百二十天 可我们不是青梅竹马 名字那么普通但就是很撩人 ...
    诛心之最阅读 1,592评论 0 0