[發明專利]一種網絡爬蟲下載解析方法及裝置有效
| 申請號: | 201310471411.4 | 申請日: | 2013-10-10 |
| 公開(公告)號: | CN103533097A | 公開(公告)日: | 2014-01-22 |
| 發明(設計)人: | 周東 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | H04L29/12 | 分類號: | H04L29/12;G06F17/30 |
| 代理公司: | 北京邦信陽專利商標代理有限公司 11012 | 代理人: | 王昭林;金璽 |
| 地址: | 100080 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 網絡 爬蟲 下載 解析 方法 裝置 | ||
技術領域
本發明涉及網絡爬蟲相關技術領域,特別是一種網絡爬蟲下載解析方法及裝置。
背景技術
互聯網數據每天以數億級增長,網絡爬蟲在數據采集中起著舉足輕重的作用。一個網絡爬蟲系統最核心的兩大模塊是下載和解析模塊。
對于一個單節點網絡爬蟲的數據下載與解析目前有兩種方法:
(1)常規順序執行方法:首先從種子URL隊列里挨個取得URL種子,通過使用開源工具Httpclient,對URL種子地址發送下載網頁請求,然后進行模擬登陸和請求數據,進而下載網頁源代碼數據,最后對下載的網頁數據進行解析。其中模擬登陸不是必需的,因為一些數據下載不需要登陸。工作流程圖如圖1所示。
(2)多線程并行執行方法:這種方法是以第一種常規順序方法為基礎,將順序執行的全過程創建為一個線程。每個線程都是從URL種子隊列中取出一個或者多個URL,然后順序執行下載與解析數據,最后保存數據。流程圖如圖2所示。
現有的技術方案中,第一種方法是從URL種子隊列中取出種子,順序執行下載、解析。這種方法不存在多線程并發,所以好處是可以充分像真實用戶一樣模擬URL數據下載請求。但是該方法有2個缺點:第一,效率較低。這種方法相當于串行執行任務,每個URL種子數據的下載和解析必須等到前面的URL執行完成之后才能執行。第二,資源利用率較低。一次只能有一個URL地址的下載及解析,其耗費的CPU及內存占比很小,一般不會超過10%,但是與此同時后面還有大量待抓取的種子URL在排著隊,這就造成資源利用率低的問題。
第二種方法較第一種方法有所改進,引入了多線程機制,效率及資源利用率有所提升。但是該方法同樣存在如下缺點:第一,不能模擬真實用戶請求下載。多線程URL請求下載的時候,同一個網站,不同的子URL,如果同一時間點有多個線程去請求不同的子URL,而同時本節點對外默認是一個本機的IP,那這種行為就被認為不是真實用戶的行為,不友好,從而會對下載行為實施禁止下載等措施。第二,該方法雖然引入了多線程,但是每個線程依然是串行的,雖然總體提升了資源利用率,但是一定程度上提高的還不夠。一個下載的過程包括客戶端發送數據請求、建立網絡連接、對方服務器響應請求、數據傳送與本地客戶端接收,這些行為同時也和網絡有很大的關系,所以一個URL地址的數據下載從發送請求到下載完成,這個過程所花費的時間是不確定性的,通常比解析過程時間長。解析的效率主要取決于機器及解析方式本身,如CPU性能、內存大小、正則表達式內容解析等,而下載與網絡關系較大,并且需要主動提供信息如IP地址以及一些本機Cookie信息等。所以下載與解析這個兩個模塊在一個線程中串行執行,導致資源利用率不夠充分。
發明內容
基于此,有必要針對現有技術存在的網絡爬蟲不能真實地模擬用戶下載行為的技術問題,提出一種網絡爬蟲下載解析方法及裝置。
一種網絡爬蟲下載解析方法,包括:
將多個待下載網絡地址劃分為多個下載任務,所述下載任務包括多個所述待下載網絡地址;
將包括有多個IP地址的代理IP地址池劃分為多個IP地址集合,每個所述IP地址集合包括多個所述代理IP地址池中的IP地址,每個所述IP地址集合包括的代理IP地址池中的IP地址的個數為所述IP地址集合的可支配IP個數;
為每個所述下載任務分配一個所述IP地址集合作為所述下載任務的可支配IP地址集合,為每個所述下載任務建立包括多個下載線程的下載線程池,所述下載任務所包括的每個所述下載線程從所述下載任務的所述可支配IP地址集合中分配一個所述IP地址;
每個下載任務采用所述下載線程池執行多線程下載,從下載任務所包括的待下載網絡地址下載網頁數據;
對所述網頁數據進行解析。
一種網絡爬蟲下載解析裝置,包括:
下載任務生成模塊,用于將多個待下載網絡地址劃分為多個下載任務,所述下載任務包括多個所述待下載網絡地址;
IP地址集合生成模塊,用于將包括有多個IP地址的代理IP地址池劃分為多個IP地址集合,每個所述IP地址集合包括多個所述代理IP地址池中的IP地址,每個所述IP地址集合包括的代理IP地址池中的IP地址的個數為所述IP地址集合的可支配IP個數;
下載線程分配IP地址模塊,用于為每個下載任務分配一個所述IP地址集合作為下載任務的可支配IP地址集合,為每個下載任務建立包括多個下載線程的下載線程池,所述下載任務所包括的每個下載線程從下載任務的可支配IP地址集合中分配一個IP地址;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310471411.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種治療燙傷的藥膏
- 下一篇:制備癲癇發作動物模型的方法





