设为首页 收藏本站
查看: 966|回复: 0

[经验分享] 第9章 scrapy-redis分布式爬虫

[复制链接]

尚未签到

发表于 2017-12-21 09:46:49 | 显示全部楼层 |阅读模式
9-1 分布式爬虫要点
DSC0000.png

  1.分布式的优点

  • 充分利用多机器的宽带加速爬取
  • 充分利用多机的IP加速爬取速度
  问:为什么scrapy不支持分布式?
  答:在scrapy中scheduler是运行在队列的,而队列是在单机内存中的,服务器上爬虫是无法利用内存的队列做任何处理,所以scrapy不支持分布式。
  2.分布式需要解决的问题

  • requests队列集中管理
  • 去重集中管理
  所以要用redis来解决。
9-2~3 redis基础知识
Ⅰ.redis的安装(windows 64位)
  1.百度:redis for windows 找到github上的安装包
  如图点进去下载
DSC0001.png

DSC0002.png

  cmd切换到下载的目录中
  输入以下命令即可运行
DSC0003.png

DSC0004.png

  这样已经启动了,可以输入相关的命令进行测试。
Ⅱ、Redis的数据类型

  • 字符串
  • 散列/哈希
  • 列表
  • 集合
  • 可排序集合
  1.字符串命令
  set mykey ''cnblogs''   创建变量
  get mykey   查看变量
  getrange mykey start end   获取字符串,如:get name 2 5 #获取name2~5的字符串
  strlen mykey   获取长度
  incr/decr mykey    加一减一,类型是int
  append mykey ''com''   添加字符串,添加到末尾
  2.哈希命令
  hset myhash name "cnblogs"   创建变量,myhash类似于变量名,name类似于key,"cnblogs"类似于values
  hgetall myhash   得到key和values两者
  hget myhash  name  得到values
  hexists myhash name  检查是否存在这个key
  hdel myhash name   删除这个key
  hkeys myhash   查看key
  hvals muhash   查看values
  3.列表命令
  lpush/rpush mylist "cnblogs"  左添加/右添加值
  lrange mylist 0 10   查看列表0~10的值
  blpop/brpop key1[key2] timeout   左删除/右删除一个,timeout是如果没有key,等待设置的时间后结束。
  lpop/rpop key   左删除/右删除,没有等待时间。
  llen key  获得长度
  lindex key index    取第index元素,index是从0开始的
DSC0005.png

DSC0006.png

  4.集合命令(不重复)
  sadd myset "cnblogs"   添加内容,返回1表示不存在,0表示存在
  scard key  查看set中的值
  sdiff key1 [key2]   2个set做减法,其实就是减去了交际部分
  sinter key1 [key2]    2个set做加法,其实就是留下了两者的交集
  spop key   随机删除值
  srandmember key member  随机获取member个值
  smember key   获取全部的元素
  5.可排序集合命令
  zadd myset 0 ‘project1’ [1 ‘project2’]   添加集合元素;中括号是没有的,在这里是便于理解  
  zrangebyscore myset 0 100   选取分数在0~100的元素
  zcount key min max   选取分数在min~max的元素的个数
Ⅲ、Redis文档

  • redis教程(菜鸟教程)
  • redis命令参数
9-4~9 全部的小节主要是解读scrapy-redis
  可以看github上的scrapy-redis的使用方法。
  bloomfilter 布隆过滤器 集成到scrapy-redis中。
  源码还没有理解透彻,先不写说明了。
  相关代码的请移步我的github:scrapy-redis应用的项目
  作者:今孝
  出处:http://www.cnblogs.com/jinxiao-pu/p/6838011.html
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  觉得好就点个推荐把!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426355-1-1.html 上篇帖子: spring-redis集群配置 下篇帖子: redis 在 php 中的应用(List篇)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表