pyspider心得

这篇我也不知道该以什么形式写。想到什么些什么吧。

这一年,准备脱离爬虫的职位,以后做什么,其实我也没想好。

本篇不适合不知道pyspider是什么的人。本篇适合能够通过pyspider写一些简单的爬虫代码,想要更加深入的了解它的原理和机制的人。

队列

我们都知道,pyspider分成三个模块,fetcher,process和schduler。这三个模块,能够在一起协同工作,是因为,他们之间通过队列进行通讯。无论是rabbitmq,还是redis,或者是其他的什么东西。

schduler通过调数据库的task来分析,到底哪些需要扔进队列,之后,fetcher读取队列,爬到的结果给结果队列,process在进行解析。如果结果是return,就返回给result的地方,如果不是,重新扔给schduler。

其实刚开始,很好奇一点是,tornado是一个异步的框架,为什么pysider可以调节rate。原因就在于,这根本不是什么线程数,这只不过是队列读取task的入口数量,在通过异步的原理,来实现每秒钟爬取多少条的功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,173评论 25 709
  • title标题: A Web Crawler With asyncio Coroutinesauthor作者: A...
    彰乐乐乐乐阅读 6,350评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,324评论 19 139
  • 那一定是它曾经给你带来好处! 比如老师交代的任务,原本需要很多天完成,你到最后一天才想起,于是赶忙去做,结果一天就...
    林淋久阅读 3,858评论 0 8
  • 好久没在当当买书了,今天已登录不上去了——每次都告诉我账号或密码不对! 唉! 是自己记忆出错了么? 没有换过账号与...
    禅云流水阅读 2,790评论 0 1