小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

開發(fā)一款開源爬蟲框架系列(二):設計爬蟲架構

 WindySky 2018-03-01

歡迎留言討論!

   爬蟲開源項目地址:http://git.oschina.net/coliza/MongooCrawler

    既然是構建分布式爬蟲架構,分布式說明爬蟲能在多臺機器同時運行,所以一定是多客戶端的,客戶端主要用于下載網(wǎng)頁,內(nèi)容會放入隊列,多客戶端就有可能運行在不同的操作系統(tǒng)不同的語言環(huán)境,所以我們讓它暫時支持java和scala兩種依賴jvm的語言,不用區(qū)分平臺。提到客戶端也一定意味著有服務端的存在,服務端主要用于解析網(wǎng)頁,提取url,輸出內(nèi)容到相應的存儲器,服務端和客戶端使用netty進行通訊,這是C/S模式。還有一種cluster模式,將爬蟲部署到集群機器上,之間相互通訊協(xié)調(diào),完成下載、分析、存儲等功能,這種模式下性能和擴展性都能得到提升。那么問題來了,我們怎么?;钅??很顯然是用心跳管理能完成這個功能。那么我們怎么保證可靠性呢?很顯然是用tcp通訊協(xié)議。那么怎么設計spider的客戶端呢?首先明確客戶端的功能邊界,客戶端首先必須接受服務端的指令,服務端讓爬哪些url就爬哪些url,所以url由服務端統(tǒng)一管理,服務端會從url隊列(以域名區(qū)分維護不同的url隊列)中取出url并封裝后傳輸給客戶端,客戶端接受到對象和會插入到隊列中,然后客戶端從隊列中取出url爬取網(wǎng)頁并解析(相當于scrapy中downloader和spider的功能集合),解析出的信息封裝到對象中傳給服務端,服務端接收到這個對象后會傳入storechannel(可能是hadoop-h(huán)dfs,hbase,elasticsearch)。傳過來的url會經(jīng)過驗證和去重后存儲到內(nèi)存數(shù)據(jù)庫中,并將url根據(jù)host塞入隊列。

爬蟲的關鍵技術:

1、抓取效率

2、鏈接分析(死鏈、去重)

3、結構化和非結構化數(shù)據(jù)提取、正文提取

4、垃圾網(wǎng)頁過濾(大量的網(wǎng)頁)

5、質(zhì)量識別

6、分類

7、反爬蟲

技術架構設計的初稿是這樣的:(待修改)


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多