一種基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法
【專利摘要】本發(fā)明屬于信息處理【技術(shù)領(lǐng)域】,具體為一種基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,其首先獲取網(wǎng)絡上公開代理服務器,測試代理服務器的網(wǎng)絡連接性能,并根據(jù)代理服務器性能得到最優(yōu)的線程數(shù)量;然后對代理服務器池進行管理,并為每一個Http請求設(shè)置一個有效代理服務器;最終執(zhí)行Web頁面訪問請求。本發(fā)明的有益效果在于:其通過計算得到線程數(shù)目,能有效地使資源得到最大的利用又不造成資源的浪費;均衡每個可用代理服務器的使用次數(shù),有效地避免頻繁訪問被服務器端檢測出來。
【專利說明】一種基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息處理【技術(shù)領(lǐng)域】,具體涉及一種新型的Web頁面信息獲取方法,特別是在現(xiàn)有網(wǎng)絡爬蟲原理的基礎(chǔ)上進行連接代理優(yōu)化管理設(shè)計的新型網(wǎng)絡爬蟲處理方法。
[0002]【背景技術(shù)】
隨著網(wǎng)絡的迅速發(fā)展,網(wǎng)絡成為大量信息的載體,如何有效地提取這些信息成為一個巨大的挑戰(zhàn)。
[0003]網(wǎng)絡爬蟲是搜索引擎系統(tǒng)中十分重要的組成部分,它負責從互聯(lián)網(wǎng)中搜集網(wǎng)頁,采集信息,這些網(wǎng)頁信息用于建立索引從而為搜索引擎提供支持,其性能的優(yōu)劣直接影響著搜索引擎的效果[I]。隨著網(wǎng)絡信息量幾何級的增長,對網(wǎng)絡爬蟲頁面采集的性能和效率的要求也越來越高。
[0004]我們總是希望在更短的時間內(nèi),獲取更多的數(shù)據(jù),但是,這會對網(wǎng)站造成非常高的負載,也帶來了網(wǎng)絡流量增加,泄露隱私數(shù)據(jù)等問題[2],很多網(wǎng)站采用爬蟲檢測技術(shù),分析Web訪問日志,當判斷出爬蟲時,則禁止爬蟲使用地址,拒絕爬蟲繼續(xù)訪問。為讓爬蟲能夠避免被監(jiān)測出來,針對網(wǎng)站對爬蟲檢測方法[3],目前已經(jīng)設(shè)計出了大量的分布式網(wǎng)絡爬蟲,偽裝網(wǎng)絡爬蟲和使用代理的網(wǎng)絡爬蟲,如斯坦福大學設(shè)計的Google爬蟲、DisguisedSpider、Internet Archive爬蟲。它們采取更換UserAgent [4],設(shè)置訪問時間間隔和優(yōu)化URL訪問策略[5],使用代理服務器[6]、多線程[7]等方法優(yōu)化爬蟲。但在實際使用爬蟲時,會遇到如下問題:(1)間隔參數(shù)沒有具體的定義標準,爬蟲性能得不到保證。當網(wǎng)站對爬蟲檢測非常嚴格時,爬蟲需要很長的間隔時間,導致爬蟲實用性不高,間隔縮短,會導致爬蟲被鑒別出來而不可用。(2)使用代理服務器,需要根據(jù)代理服務器性能和多線程的數(shù)量來優(yōu)化爬蟲效率,但是目前的研究中并沒有給出如何優(yōu)化的具體方法,如果設(shè)置了不合適的關(guān)系值,那么爬蟲效率會非常低。
[0005]由此可見,在現(xiàn)有爬蟲技術(shù)的基礎(chǔ)上,采用合理的代理連接管理方法來對爬蟲數(shù)據(jù)獲取線程進行優(yōu)化配置,對于提升爬蟲性能、避免爬蟲被服務器拒絕是非常重要的。本發(fā)明給出了一種符合這種要求的設(shè)計方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的主要目的是針對爬蟲訪問Web頁面時被拒的問題,提出一種基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲,避免被服務器端檢測。這種方法具有一定的適應能力,能夠解決爬蟲在進行Web頁面獲取時被拒絕的問題。這種方法充分利用了現(xiàn)有互聯(lián)網(wǎng)上公開的網(wǎng)絡連接代理服務,在多線程爬行中進行了代理連接的優(yōu)化管理和設(shè)計,通過代理服務的自動選擇機制避免重復使用同一個客戶端IP地址連接Web服務器,從而避免被服務端檢測。
[0007]本發(fā)明提出的基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,主要使用了多個連接代理,并提出有效的代理管理策略和參數(shù)設(shè)置方案,在多線程爬蟲的基礎(chǔ)上應用多代理進行數(shù)據(jù)爬取。其首先獲取網(wǎng)絡上公開代理服務器,測試代理服務器的網(wǎng)絡連接性能,并根據(jù)代理服務器性能得到最優(yōu)的線程數(shù)量;然后對代理服務器池進行管理,并為每一個Http請求設(shè)置一個有效代理服務器,最終執(zhí)行Web頁面訪問請求。其中:
根據(jù)代理池中的代理服務器性能確定線程數(shù)量M,采用的計算公式如下:
【權(quán)利要求】
1.一種基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,其特征在于具體步驟為,首先獲取網(wǎng)絡上公開代理服務器,測試代理服務器的網(wǎng)絡連接性能,并根據(jù)代理服務器性能得到最優(yōu)的線程數(shù)量;然后對代理服務器池進行管理,并為每一個Http請求設(shè)置一個有效代理服務器;最終執(zhí)行Web頁面訪問請求;其中: 線程數(shù)量M根據(jù)代理服務器池中的代理服務器性能確定,其計算公式如下:
2.根據(jù)權(quán)利要求1所述的基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,其特征在于:采用最小使用次數(shù)優(yōu)先隊列實現(xiàn)代理任務分配。
3.據(jù)權(quán)利要求1所述的基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,其特征在于:所述代理服務器的響應時間期望值.^的計算公式如下:
4.根據(jù)權(quán)利要求1所述的基于連接代理優(yōu)化管理的多線程網(wǎng)絡爬蟲處理方法,其特征在于:所述代理服務器的失敗2 -根據(jù)代理服務器狀態(tài)隊列、代理服務器在時間窗口 w內(nèi)的失敗次數(shù)計算,其計算公式如下:
【文檔編號】G06F9/50GK103902386SQ201410146375
【公開日】2014年7月2日 申請日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】羅邦慧, 曾劍平 申請人:復旦大學