众推平台架构——分布式爬虫
分布式爬蟲架構(gòu)
經(jīng)過新一輪的投票,項(xiàng)目的范圍已經(jīng)基本確定。
大家決定 全力以付,集中攻克“分布式爬蟲”。
分布式爬蟲架構(gòu)1
使用隊(duì)列,即生產(chǎn)者,消費(fèi)都模式。
由于生產(chǎn)者將規(guī)則生成到隊(duì)列,然后由爬蟲集群(消費(fèi)者)到隊(duì)列中取規(guī)則,然后按優(yōu)先級等規(guī)則進(jìn)行爬取。
分布式爬蟲架構(gòu)2
類似于webmagic,webmagic的是一個無須配置、便于二次開發(fā)的爬蟲框架,它提供簡單靈活的API,只需少量代碼即可實(shí)現(xiàn)一個爬蟲。webmagic采用完全模塊化的設(shè)計(jì),功能覆蓋整個爬蟲的生命周期(鏈接提取、頁面下載、內(nèi)容抽取、持久化),支持多線程抓取,分布式抓取,并支持自動重試、自定義UA/cookie等功能。
分布式爬蟲架構(gòu)3
分布式爬蟲架構(gòu)3,參考的Cola是一個分布式的爬蟲框架,用戶只需編寫幾個特定的函數(shù),而無需關(guān)注分布式運(yùn)行的細(xì)節(jié)。任務(wù)會自動分配到多臺機(jī)器上,整個過程對用戶是透明的。
基于Cola實(shí)現(xiàn)的爬蟲位于contrib/目錄下。目前實(shí)現(xiàn)了四個爬蟲:
-
wiki:維基百科。
-
weibo:新浪微博爬蟲。從初始用戶出發(fā),然后是其關(guān)注和粉絲,依次類推,抓取指定個數(shù)的新浪微博用戶的微博、個人信息、關(guān)注和粉絲。其中,用戶微博只獲取了內(nèi)容、贊的個數(shù)、轉(zhuǎn)發(fā)和評論的個數(shù)等等,而沒有具體去獲取此微博被轉(zhuǎn)發(fā)和評論的內(nèi)容。
-
generic(unstable):通用爬蟲,只需配置,而無需修改代碼。目前Cola實(shí)現(xiàn)了一個抽取器(cola/core /extractor),能夠從網(wǎng)頁正文中自動抽取主要內(nèi)容,即去除類似邊欄和底腳等內(nèi)容。但是,此抽取器目前準(zhǔn)確度還不夠,效率也不夠高,所以需要謹(jǐn)慎 使用。
-
weibosearch(unstable):新浪微博搜索的爬蟲。這個爬蟲使用 cola.core.opener.SpynnerOpener,基于spynner實(shí)現(xiàn)了一個Opener能夠執(zhí)行JavaScript和Ajax代 碼。目前這個爬蟲存在的問題是:新浪微博可能會將其識別成機(jī)器人,因此有可能會讓輸入驗(yàn)證碼。
wiki和weibo之前有所提及。主要說明generic和weibosearch。
分布式爬蟲架構(gòu)4
設(shè)計(jì)方式參考hadoop等分布式運(yùn)算架構(gòu)。
控制結(jié)點(diǎn)類似于hadoop的namenode,工作結(jié)點(diǎn)類似于datanode。存儲可以根據(jù)代理適配到DB或者M(jìn)ongo集群等。
有想?yún)⑴c的可以一起進(jìn)來討論
群號 194338168
想深度參與的加,不想?yún)⑴c的就別往里進(jìn)了,現(xiàn)在需要的主要是開發(fā)和文檔兩類人。群會定期往出清人! (項(xiàng)目會開源出來)
轉(zhuǎn)載于:https://blog.51cto.com/skyme/1623733
總結(jié)
以上是生活随笔為你收集整理的众推平台架构——分布式爬虫的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Discuz! X3.2新增管理员无法登
- 下一篇: TCP、UDP和HTTP