999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于集群的分布式爬蟲系統的架構研究

2020-03-10 22:12:09和乾
科學與財富 2020年33期

摘 要:互聯網時代,如何從海量數據中收集信息是一個關鍵問題。目前,使用最頻繁的信息檢索與收集工具是基于通用爬蟲的搜索引擎。與通用爬蟲相比,主題爬蟲盡量避免與主題不相關頁面的抓取,存儲的頁面數量更少,所獲取的信息價值密度更高,是一種有效的信息收集工具。如何通過有效的架構設計降低爬蟲任務的耗時是一個關鍵問題。

關鍵詞:主題爬蟲;架構;Scrapy

網絡爬蟲指的就是一種根據既定規則對Web網頁中應用程序或腳本進行自動提取的技術。如今,各大搜索引擎網站和大型互聯網企業均在大幅使用此類爬蟲程序,爬取目標網站的網頁信息,以實時更新企業內部服務器關于這類信息的內容。網絡爬蟲的步驟流程一般可分為采集數據,分析或轉換數據,存儲數據三個部分。在傳統爬蟲中,首先給定一個或者多個URL,爬蟲程序開始運行,從給定的URL上獲取網頁的信息,分析過濾新獲取的URL,存入等待爬取的URL數據庫表中,不斷重復此過程。

單機版本的網絡爬蟲存在很明顯的缺陷,受限于單獨的主機配置,不能任意擴展性能,在生產環境中極少使用。因此,目前網絡爬蟲一般均會使用分布式爬蟲架構,可以在多個節點同時運行,大幅提高了爬蟲速度和效率。對于分布式爬蟲架構,常見的有主從式、對等式、混合式架構。

1? 主從式架構

在主從分布式結構中,一般只有一個主節點,其余均為從節點。主節點負責URL的存儲與分發,其它節點則進行網頁的爬取下載工作。主節點服務器負責維護待爬取的URL隊列,并且主動給從節點分配URL,所以主節點還需要考慮整個系統的負載均衡的問題。不能讓某個從節點壓力過大,也不能讓某個從節點一直空閑。主節點需要根據從節點反饋的任務執行情況來增減某一個從節點的負載壓力,以發揮整個系統最大的效率。在各個從節點之間一般沒有通信鏈路,各個從節點只會和主節點相互聯系。因為后期URL的數量巨大,所以主節點的URL服務器對待爬取隊列的維護和URL的分發將會承受極大壓力。

因此,主從分布式結構性能效率的提升關鍵在于主節點的URL服務器。主從分布式拓撲示意圖如1-1所示。

2? 對等式架構

在對等式架構中,各個節點之間不存在所謂的主從之分。每個節點都會有爬蟲任務運行,各個節點各自維護自己的待爬取URL隊列。因此這就存在數據

同步的問題,多個節點可能會對同一網頁多次爬取,這會大大的浪費節點的資源。既然各個節點不能各自為政,那么如何分工協作就是一個問題了。常見的有以下兩種解決方式:哈希取模和一致性哈希。哈希取模是在爬取之前各節點會計算網站域名的哈希值,然后對節點個數取模,取模的結果就代表了該域名下應由哪個節點進行爬取。但該方法存在一些弊端,若有一個節點宕機了,取模數就會發生變化,以致于最終結果就會發生混亂。另外,不同網站的網頁數據量也不一樣,不同的節點爬取不同域名下的網站,這也可能會存在負載均衡的問題。一致性哈希算法直接將網站主域名進行哈希映射,結果范圍是0-2^32之間的某個數。將該范圍首尾相連成環,每個服務器就負責其中的一小段,如果某一個節點服務器宕機,就將該服務器的任務順延至下一個節點服務器。對等式架構不存在獨立的URL服務器,因此不會存在性能瓶頸的問題,但是整個系統實現起來比主從式架構更加復雜。對等分布式拓撲示意圖如圖2-1所示。

3? 主從混合模式

此模式是參考了主從式架構的設計基礎,并且也揉合了對等式架構的特性。在此架構模式中,由主節點和從節點之分,每個節點均會有爬蟲任務。主節點上有著系統唯一的URL服務器,各個從節點與主節點相互通信,各個從節點之間不會相互通信。該模式主要是考慮到了目的網站鏈接的特殊性,主節點僅對一類特殊鏈接進行爬取,從節點也僅對另一類特殊鏈接爬取,兩類節點爬取的鏈接不會交疊重復。此模式設計的好處是比對等式更簡單,系統設計和程序代碼實現起來更加容易;而與主從式相比,增設了主節點爬取小部分特殊鏈接的任務。本系統參考了Python語言編寫的經典的爬蟲框架Scrapy,利用Redis數據庫,解決了其不支持分布式的缺點。

4 Scrapy-Redis框架

Scrapy 是一款基于Python開發的開源web爬蟲框架,可快速抓取Web站點并提取頁面中的結構化數據,具有高度的擴展性和魯棒性。但是在面對大量的網頁數據需要處理時,單主機的爬蟲程序效率低下的缺點就顯得尤為突出,遠遠不能滿足項目的要求了,此時就必須使用分布式爬蟲了。然而單獨的原始Scrapy?框架并不支持分布式,因此在Scrapy的框架基礎上衍生出了Scrapy-Redis分布式爬蟲框架。它利用Redis?調度和存儲需要爬取的請求,并存儲爬取產生的項目以供后續處理使用。Scrapy-Redis重寫了Scrapy一些比較關鍵的模塊,使Scrapy支持了分布式架構。

在信息時代的今天,互聯網數據量爆發增長,云計算和大數據的應用場景也越來越豐富。互聯網大數據對于大型企業收集分析客戶需求、意向和商業前景市場調研就極為重要。在企業的商業決策上、經營方向上需要大量準確的可靠數據做支撐,所以如何快速準確地獲取大量的目的數據信息就是一個迫切需要解決的問題。本系統基于Docker容器集群部署的分布式爬蟲系統,采用了Scrapy-Redis分布式爬蟲框架,改進了URL去重模塊,增設了頁面文本去重模塊,優化了對于反爬蟲問題的處理,對于整個系統的高效性與健壯性增加了一層堅實保障。

參考文獻:

[1] 杜曉旭,賈小云.基于Python 的新浪微博爬蟲分析[J].軟件,2019,40(04)

[2]鄧萬宇,劉光達,董瑩瑩.一種基于Scrapy-Redis 的分布式微博數據采集方案[J].信息技術,2018(11).

作者簡介:

和乾(1981)男,黑龍江大慶人,講師,大學本科, 主要從事計算機網絡專業網絡安全、網絡操作系統的教學及安全理論考試點的運維工作。

(大慶職業學院? 黑龍江? 大慶? 163255)

主站蜘蛛池模板: 亚洲国产欧洲精品路线久久| 精品国产香蕉伊思人在线| 亚洲国产中文在线二区三区免| 四虎影视永久在线精品| 狠狠色狠狠综合久久| 无码aⅴ精品一区二区三区| 亚洲综合激情另类专区| 国产高清毛片| 欧美精品黑人粗大| 日韩av在线直播| 国产特级毛片| 毛片久久久| 一级毛片在线直接观看| 欧美区国产区| 日本一区二区三区精品国产| 婷婷成人综合| 54pao国产成人免费视频| 在线欧美一区| 欧美午夜网| 51国产偷自视频区视频手机观看 | 国产精品妖精视频| 亚洲天堂网在线播放| 一级毛片免费观看久| 欧美人人干| 9999在线视频| 国产区在线观看视频| 再看日本中文字幕在线观看| 国产区免费| 一级毛片在线播放免费| 亚洲αv毛片| 久热这里只有精品6| 人妻一区二区三区无码精品一区| 第九色区aⅴ天堂久久香| 久草热视频在线| 久操线在视频在线观看| 大陆精大陆国产国语精品1024 | 欧美天堂在线| 亚洲V日韩V无码一区二区| 99无码熟妇丰满人妻啪啪| 精品国产美女福到在线不卡f| 午夜激情婷婷| 国产色网站| 国产成人高精品免费视频| 国产一区二区三区在线观看视频| 国产在线无码一区二区三区| 国产一区二区三区在线观看视频| 在线欧美日韩| 亚洲天堂视频在线免费观看| 伊人久综合| 久草网视频在线| 一区二区在线视频免费观看| 国产精品第一区| 91精品国产自产在线观看| 亚洲一区二区三区国产精品| 午夜福利亚洲精品| 第九色区aⅴ天堂久久香| 欧美精品1区| 国产91丝袜在线观看| 伊人久久婷婷| 久久人搡人人玩人妻精品| 中国一级特黄大片在线观看| 久久综合丝袜日本网| 超清无码熟妇人妻AV在线绿巨人| m男亚洲一区中文字幕| 日韩国产精品无码一区二区三区| 国产99视频精品免费视频7| 亚洲v日韩v欧美在线观看| 国产精品久久久久久搜索| 欧美精品影院| 无码国产偷倩在线播放老年人| 国产丝袜无码精品| 老司机午夜精品视频你懂的| 午夜精品福利影院| 国产午夜人做人免费视频中文| 亚洲天堂自拍| 中文字幕精品一区二区三区视频 | 国产尹人香蕉综合在线电影| 亚洲 欧美 日韩综合一区| 亚洲精品视频免费观看| 久久性妇女精品免费| 久久精品欧美一区二区| 国产SUV精品一区二区6|