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

简介: 分布式爬虫架构 经过新一轮的投票,项目的范围已经基本确定。 大家决定 全力以付,集中攻克“分布式爬虫”。 分布式爬虫架构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
想深度参与的加,不想参与的就别往里进了,现在需要的主要是开发和文档两类人。群会定期往出清人! (项目会开源出来)

目录
相关文章
|
存储 监控 物联网
从实时数据库转战时序数据库,他陪伴 TDengine 从 1.0 走到 3.0
他与 TDengine 的六年故事,始于一个“无奈之举”。
271 1
|
网络协议 Java 关系型数据库
微信支撑10亿用户背后核心技术:亿级流量Java并发与网络编程实战
大家可能不知道,支撑微信10亿用户之后,最基础也是最核心的技术是什么?那就是网络编程。 越是大型互联网通讯项目,越是对网络编程的落地要求越高。落地,意味着对实战的要求更高。
|
存储 资源调度 算法
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(中)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
305 0
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(下)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
258 0
|
算法 搜索推荐
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践(上)
闲鱼技术2022年度白皮书-服务端主题-QCon直击|闲鱼推荐大规模应用背后的工程实践
287 0
|
JSON 编解码 自然语言处理
谈谈ChatGPT的低成本“平替”实现路线(2)
谈谈ChatGPT的低成本“平替”实现路线
808 0
|
人工智能 JSON 自然语言处理
谈谈ChatGPT的低成本“平替”实现路线(1)
谈谈ChatGPT的低成本“平替”实现路线
560 0
|
Unix 程序员 Apache
当开源遇见 KPI,全球化 VS 本土化,开源的理想与现实该如何和解?
最近几年,开源在全球蓬勃发展:一方面,越来越多人投身于开源生态中,除了开发者,不懂代码的人也能为开源社区做贡献;另一方面,开源贡献的形式更多元,不再拘泥于写代码,文档贡献、开源布道也是建设开源生态的重要动作。
267 0
|
SQL 存储 NoSQL
王者荣耀背后的实时大数据平台用了什么黑科技?
实时方面主要是补足我们对游戏运营的体验,比如说在游戏里玩完一局或者做完一个任务后,立马就能得到相应的奖励,或者下一步的玩法指引。对用户来说,这种及时的刺激和干预,对于他们玩游戏的体验会更好。其实不单单是游戏,其他方面也是一样的,所以我们在做这套系统的时候,就是离线+实时结合着用,但主要还是往实时方面去靠拢,未来大数据的方向也是,尽量会往实时方向去走。
王者荣耀背后的实时大数据平台用了什么黑科技?
|
存储 XML 缓存
首次揭秘!看大麦如何掌控超大规模高性能选座抢票
随着现场娱乐行业的不断发展,各类演出层出不穷,越来越多的演出开启选座购票满足用 户的自主选座需求。大麦的选座不仅面向中小场馆类的剧院演出,还面向大型体育赛事、大型 演唱会等超大型场馆(如鸟巢近 10 万座)。选座类型抢票的特点是“选”,由于“选”的可视化以及超大场馆在数据量上对大麦是很大的挑战。本文通过服务端和前端上的一些解决方案来探讨 如何支撑超大规模场馆的高性能选座,通过本文的一些技术方案希望可以对读者在一些高并发实践中提供帮助。
首次揭秘!看大麦如何掌控超大规模高性能选座抢票