[發明專利]一種基于連接代理優化管理的多線程網絡爬蟲處理方法有效
| 申請號: | 201410146375.9 | 申請日: | 2014-04-11 |
| 公開(公告)號: | CN103902386B | 公開(公告)日: | 2017-05-10 |
| 發明(設計)人: | 羅邦慧;曾劍平 | 申請(專利權)人: | 復旦大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F17/30;H04L29/08 |
| 代理公司: | 上海正旦專利代理有限公司31200 | 代理人: | 陸飛,王潔平 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 連接 代理 優化 管理 多線程 網絡 爬蟲 處理 方法 | ||
技術領域
本發明涉及信息處理技術領域,具體涉及一種新型的Web頁面信息獲取方法,特別是在現有網絡爬蟲原理的基礎上進行連接代理優化管理設計的新型網絡爬蟲處理方法。
背景技術
隨著網絡的迅速發展,網絡成為大量信息的載體,如何有效地提取這些信息成為一個巨大的挑戰。
網絡爬蟲是搜索引擎系統中十分重要的組成部分,它負責從互聯網中搜集網頁,采集信息,這些網頁信息用于建立索引從而為搜索引擎提供支持,其性能的優劣直接影響著搜索引擎的效果。隨著網絡信息量幾何級的增長,對網絡爬蟲頁面采集的性能和效率的要求也越來越高。
我們總是希望在更短的時間內,獲取更多的數據,但是,這會對網站造成非常高的負載,也帶來了網絡流量增加,泄露隱私數據等問題,很多網站采用爬蟲檢測技術,分析 Web訪問日志,當判斷出爬蟲時,則禁止爬蟲使用地址,拒絕爬蟲繼續訪問。為讓爬蟲能夠避免被監測出來,針對網站對爬蟲檢測方法,目前已經設計出了大量的分布式網絡爬蟲,偽裝網絡爬蟲和使用代理的網絡爬蟲,如斯坦福大學設計的Google爬蟲、Disguised Spider、Internet Archive爬蟲。它們采取更換 UserAgent,設置訪問時間間隔和優化URL訪問策略,使用代理服務器、多線程等方法優化爬蟲。但在實際使用爬蟲時,會遇到如下問題:(1)間隔參數沒有具體的定義標準,爬蟲性能得不到保證。當網站對爬蟲檢測非常嚴格時,爬蟲需要很長的間隔時間,導致爬蟲實用性不高,間隔縮短,會導致爬蟲被鑒別出來而不可用。(2)使用代理服務器,需要根據代理服務器性能和多線程的數量來優化爬蟲效率,但是目前的研究中并沒有給出如何優化的具體方法,如果設置了不合適的關系值,那么爬蟲效率會非常低。
由此可見,在現有爬蟲技術的基礎上,采用合理的代理連接管理方法來對爬蟲數據獲取線程進行優化配置,對于提升爬蟲性能、避免爬蟲被服務器拒絕是非常重要的。本發明給出了一種符合這種要求的設計方法。
發明內容
本發明的主要目的是針對爬蟲訪問Web 頁面時被拒的問題,提出一種基于連接代理優化管理的多線程網絡爬蟲,避免被服務器端檢測。這種方法具有一定的適應能力,能夠解決爬蟲在進行Web頁面獲取時被拒絕的問題。這種方法充分利用了現有互聯網上公開的網絡連接代理服務,在多線程爬行中進行了代理連接的優化管理和設計,通過代理服務的自動選擇機制避免重復使用同一個客戶端IP地址連接Web服務器,從而避免被服務端檢測。
本發明提出的基于連接代理優化管理的多線程網絡爬蟲處理方法,主要使用了多個連接代理,并提出有效的代理管理策略和參數設置方案,在多線程爬蟲的基礎上應用多代理進行數據爬取。 其首先獲取網絡上公開代理服務器,測試代理服務器的網絡連接性能,并根據代理服務器性能得到最優的線程數量;然后對代理服務器池進行管理,并為每一個 Http 請求設置一個有效代理服務器,最終執行Web頁面訪問請求。其中:
根據代理池中的代理服務器性能確定線程數量M,采用的計算公式如下:
其中, 為代理服務器的失敗率,v 為爬取速度, 為代理池中代理服務
器的響應時間期望值;
對代理服務器池進行管理,并為每一個 Http 請求設置一個有效代理服務器時,把代理服務器的失敗率和 響應時間作為鑒別一個代理是否有效的標準;隔段時間以后,再次嘗試使用之前被判斷為不能使用的代理,從而把 無效的代理服務器池中可用的代理放入有效的代理服務器池中;代理任務分配時,為每個線程獲取有效的代理服務器池中使用次數最少的代理,以均衡地把任務分配給每一個代理。
本發明中,采用最小使用次數優先隊列實現代理任務分配。用鏈表來存儲代理,并記錄在時間窗口內代理的使用次數。按照代理的使用次數由小到大的順序,對鏈表進行排序。插入代理時,使用插入排序方法,從鏈表表尾的位置開始比較代理的使用次數,當在鏈表中找到使用次數不大于該代理的代理時,插入其后。需要提供代理使用時,獲取鏈表表頭位置的代理,并刪除此代理。
本發明中,根據代理服務器響應時間,計算出爬蟲的平均反應時間期望值,計算公式如下:
其中, 為第 i 個代理服務器的響應時間, N 為代理服務器個數。
本發明中,根據代理服務器狀態隊列、代理服務器在時間窗口 W 內的失敗次數,計算出失敗率;計算公式如下:
其中,failedTimes 為連接執行期間代理服務器的失敗次數,usedTimes 為
代理服務器的使用次數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于復旦大學,未經復旦大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410146375.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種全自動注水機構
- 下一篇:一種整體鍛造的雙閘板電站閘閥





