众推平台架构——分布式爬虫

简介: 分布式爬虫架构 经过新一轮的投票,项目的范围已经基本确定。 大家决定 全力以付,集中攻克“分布式爬虫”。 分布式爬虫架构1 使用队列,即生产者,消费都模式。 由于生产者将规则生成到队列,然后由爬虫集群(消费者)到队列中取规则,然后按优先级等规则进行爬取。

分布式爬虫架构

经过新一轮的投票,项目的范围已经基本确定。

image

大家决定 全力以付,集中攻克“分布式爬虫”。

分布式爬虫架构1

使用队列,即生产者,消费都模式。

生产者消费者

由于生产者将规则生成到队列,然后由爬虫集群(消费者)到队列中取规则,然后按优先级等规则进行爬取。

分布式爬虫架构2

类似于webmagic,webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。

image

分布式爬虫架构3

分布式爬虫架构3,参考的Cola是一个分布式的爬虫框架,用户只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。

基于Cola实现的爬虫位于contrib/目录下。目前实现了四个爬虫:

  • wiki:维基百科。

  • weibo:新浪微博爬虫。从初始用户出发,然后是其关注和粉丝,依次类推,抓取指定个数的新浪微博用户的微博、个人信息、关注和粉丝。其中,用户微博只获取了内容、赞的个数、转发和评论的个数等等,而没有具体去获取此微博被转发和评论的内容。

  • generic(unstable):通用爬虫,只需配置,而无需修改代码。目前Cola实现了一个抽取器(cola/core /extractor),能够从网页正文中自动抽取主要内容,即去除类似边栏和底脚等内容。但是,此抽取器目前准确度还不够,效率也不够高,所以需要谨慎 使用。

  • weibosearch(unstable):新浪微博搜索的爬虫。这个爬虫使用 cola.core.opener.SpynnerOpener,基于spynner实现了一个Opener能够执行JavaScript和Ajax代 码。目前这个爬虫存在的问题是:新浪微博可能会将其识别成机器人,因此有可能会让输入验证码。

wiki和weibo之前有所提及。主要说明generic和weibosearch。

image

分布式爬虫架构4

设计方式参考hadoop等分布式运算架构。

分布式爬虫架构4

控制结点类似于hadoop的namenode,工作结点类似于datanode。存储可以根据代理适配到DB或者Mongo集群等。

有想参与的可以一起进来讨论

群号 194338168
想深度参与的加,不想参与的就别往里进了,现在需要的主要是开发和文档两类人。群会定期往出清人! (项目会开源出来)

目录
相关文章
|
12月前
|
架构师 Cloud Native Java
构建可靠分布式架构的最佳方式,竟记在国内第一本“凤凰架构”上
本书是一本以“如何构建一套可靠的大型分布式系统”为叙述主线的技术手册。笔者十多年来一直从事大型企业级软件的架构研发工作,较完整地经历了从最早的大型单体系统到如今基于云原生基础设施的架构演变过程,希望借此机会,系统性地整理相关知识,查漏补缺,将它们都融入既有的知识框架之中,也希望能将这些知识与大家分享讨论。
122分布式电商项目 - 终章
122分布式电商项目 - 终章
45 0
GitHub上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了
GitHub上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了!! 这份笔记包含10章的内容,每一章都分为若干小节,每个小节里面都包含更多细节化的内容。
|
算法
GitHub 上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了
说在前面的话 GitHub上疯传数万次的蚂蚁内部绝密分布式高可用算法笔记太香了!! 这份笔记包含10章的内容,每一章都分为若干小节,每个小节里面都包含更多细节化的内容。 内容简介 本文从原理出发,系统性地介绍了分布式系统和算法,而非介绍如何使 用某种分布式框架。
74 0
|
存储 缓存 网络协议
一套互联网公司理想架构,快快收藏。。(3)
一套互联网公司理想架构,快快收藏。。(3)
151 0
一套互联网公司理想架构,快快收藏。。(3)
|
域名解析 负载均衡 网络协议
一套互联网公司理想架构,快快收藏。。(1)
一套互联网公司理想架构,快快收藏。。(1)
270 0
一套互联网公司理想架构,快快收藏。。(1)
|
消息中间件 分布式计算 NoSQL
每天数十亿次请求架构经验分享
对于只有不到10个工程师的团队构建一个可伸缩的大型Web系统(web-scale)是困难的,使用正确的技术也许比你的团队成员数量多少更加重要。
155 0
|
机器学习/深度学习 人工智能 算法
微软推人人可用的机器学习,打通windows应用程序任督二脉,惠及5000万开发者
微软「Build开发者大会」首次线上开幕,CEO Nadella对开发者倾诉衷肠,微软此次推出了WhiteNoise等多个机器学习工具包,让你的机器学习模型更上一层楼,Project Reunion一统Windows应用程序开发!更有量子计算平台预览版,HoloLens、Office套件等强力升级更新。
226 0
微软推人人可用的机器学习,打通windows应用程序任督二脉,惠及5000万开发者
|
新零售 中间件 Java
阿里中间件(Aliware)一大波优质JD在向你靠近!
这是一个神奇的团队,在技术部门竟然有各种风格的小姐姐? 这是一个较真的团队,对业务、技术的声音没有功利没有对错,只有自由讨论。 这是一个有理想的团队,他们要把从阿里孵化出来的中间件技术赋能给全社会。 想要一探究竟?欢迎你的加入~!