<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種定向信息抓取場景中大規模ip地址資源使用方法

文檔序號:9931437閱讀:740來源:國知局
一種定向信息抓取場景中大規模ip地址資源使用方法
【技術領域】
[0001]本發明涉及特定網絡信息獲取領域,具體涉及一種定向信息抓取場景中大規模IP地址資源使用方法,能夠在單IP對特定網絡資源訪問頻率受限,大量任務并發執行的情況下,高效使用和分配大量IP地址資源。
【背景技術】
[0002]隨著互聯網的快速發展,網絡上的數據資源也急劇膨脹。在某些需要對網絡資源進行集中獲取的場景中,例如搜索引擎的爬蟲爬取某個網站的網頁,由于目標網頁數量巨大,簡單地單一線程串行執行獲取任務已經遠遠不能達到性能上的要求。此時較為常用的方法是同時執行多個信息獲取任務,提高系統的吞吐量,從而縮短批量任務的總體完成時間。常見地并發執行多個網絡任務的方法包括使用多線程或者事件驅動(10復用)的編程模型。多任務并發執行的一個直接結果是加快了爬取程序對目標網站的訪問頻率。而通常目標網站從系統能力的角度出發,為了保證普通用戶對網站的正常訪問,會在發現某個IP地址過于頻繁地訪問網站后對其進行拒絕,使其不能獲取網站正常的響應,即通常情況下單個IP地址對某個特定網絡資源(例如某個域名、URL或者符合特定模式的URL)的訪問頻率是受限制的,不能高于某個特定的值。因此爬取程序的吞吐量一方面依賴于其執行任務的并發程度(通常取決于CPU、內存和網卡等硬件資源的配置以及所采用并發模型的效率),另一方面則依賴于其所擁有的IP地址的數量,因為在給定IP地址數量為η,單個IP地址對網絡資源的最高訪問頻率為q每秒的情況下,爬取程序吞吐量所能達到的理論上界為n*q每秒。
[0003]因此,通常情況下在進行特定網絡資源集中采集的場景中會同時使用多個IP地址并發地執行獲取任務。若程序的并發能力上界高于多IP地址總體吞吐量上界,即系統并發能力不構成系統總體吞吐量的限制因素時,此時程序設計所面臨的問題是如何向多個并發執行的信息抓取任務有效地分配IP地址,使得所有IP地址接近其訪問頻率上限,既不因為訪問過慢造成資源的浪費,又不因為訪問過快而造成IP地址被目標網站屏蔽。
[0004]同時在實際的場景中,為了節約抓取成本,大量的IP地址通常是互聯網上公開的代理(HTTP或者Socks代理),代理的質量和穩定性通常無法控制,甚至會出現整體可用率較差的情況,若在抓取過程中不加區別地使用將造成大量無謂的訪問異常。

【發明內容】

[0005]基于以上定向信息抓取場景中存在的問題,本發明的目的是提供一種定向信息抓取場景中大規模IP地址資源使用方法。解決兩個方面的問題,首先著力解決并發任務中IP地址的分配問題,在訪問頻率的約束下實現IP地址訪問能力充分利用;其次提供IP地址可用性的評估機制,提尚網絡?目息獲取任務的成功率。
[0006]為達上述目的,本發明采取的具體技術是:
[0007]—種定向信息抓取場景中大規模IP地址資源使用方法,包括以下步驟:
[0008]針對設置了訪問頻率限制的網絡資源,根據一IP地址集合L中每個IP地址下次可訪問該網絡資源的時刻建立包含L中全部IP地址的優先隊列;
[0009]在向某個網絡信息采集任務分配可用IP地址時,取出優先隊列中優先級最高的IP地址,設其下次可訪問該網絡資源的時刻為t,并更新該IP地址的下次可訪問該網絡資源的時刻,重新將其放入優先隊列;若當前時刻大于或等于t,則當前任務可立即使用該IP地址,否則當前任務阻塞直至當前時刻大于或等于t,方可使用該IP地址;
[0010]針對每個IP地址維護該IP地址的使用次數un和訪問失敗次數fn,當從優先隊列中取出的優先級最高的IP地址時,以Ι-fn/un的概率選用,fn/un的概率放棄;若該優先級最高的IP地址被放棄,則繼續根據優先級從優先隊列中取出IP地址,直到有一個IP地址被選用。
[0011]進一步地,所述優先隊列中,IP地址的下次訪問該網絡資源的時刻越小則其優先級越高。
[0012]進一步地,根據目標網絡資源的訪問頻率限制值來更新該IP地址的下次可訪問該網絡資源的時刻。
[0013]進一步地,所述根據一IP地址集合L中每個IP地址下次可訪問該網絡資源的時刻建立包含L中全部IP地址的優先隊列包括:
[0014]I)建立原始類型為(IP,ts)的優先隊列Q,其中ts表示該IP地址最早的下次可訪問該網絡資源的時刻,在優先隊列Q中,ts的值越小,元素的優先級越高;
[0015]2)對L中的每個IP地址,構造元素(IP,當前時刻)并放入優先隊列Q中,最終使Q中的元素數量等于L中的元素數量。
[0016]進一步地,所述針對每個IP地址維護該IP地址的使用次數un和訪問失敗次數fn包括:
[0017]建立key為IP地址,value為(fn,un)的字典S,對L中的每個IP地址,構造key為該IP地址,value為(O,O)的元素并放入S中;最終S中的元素數量等于L中的元素數量。
[0018]進一步地,所述當從優先隊列中取出的優先級最高的IP地址時,以Ι-fn/un的概率選用,fn/un的概率放棄;若該優先級最高的IP地址被放棄,則繼續根據優先級從優先隊列中取出IP地址,直到有一個IP地址被選用包括:
[0019]I)維護一個計數器,表示步驟2)執行的次數c,并初始化c = O ;
[0020]2)從優先隊列Q中取出優先級最高的元素(IP,ts),之后向Q中放入元素(IP,max(當前時刻,ts)+T),并令c = c+1。若c大于等于預設的一固定值,直接轉至步驟5);
[0021]3)根據IP從字典S中獲得對應的(fn,un);若un小于等于某個固定值,轉至步驟5);
[0022]4)生成一個位于區間[0,1)之間的浮點類型的隨機數r,若r小于Ι-fn/un,則轉至步驟5),否則轉至步驟2)。
[0023]5)對于步驟2)中選出的元素(IP,ts),若當前時刻t大于或等于ts,則返回IP;否則,睡眠ts-t的時間之后返回IP。
[0024]通過采取上述技術方案:首先通過優先選用最近可使用的IP地址,使得在系統并發能力不構成性能瓶頸的場景下,每個IP地址的訪問能力被充分使用,達到IP地址訪問頻率的上限;同時在不存在IP地址可立即使用的情況下阻塞當前抓取任務,防止IP地址被過于頻繁地使用,因而可避免被目標網站屏蔽。其次通過每個IP地址的訪問歷史估計該IP地址的可用性,根據IP地址的可用性確定該地址被選用的概率,其結果是可用性較強的IP地址被使用地較為頻繁,而可用性較差的IP地址則被較少地使用,有效地提高了網絡任務的成功率。因此在定向信息抓取的場景中,本發明提供的方法可高效地使用大量的IP地址進行并發的信息采集。對本發明中的方法進行軟件實現并用來進行實際的網絡信息抓取任務后,結果表明本發明的大量IP地址使用方法可使得系統性能接近理論上的吞吐量上限。
【附圖說明】
[0025]圖1本發明一采集應用場景中任務執行期間IP地址數量變化曲線。
[0026]圖2a、圖2b、圖2c為本發明一采集應用場景中3批IP地址可用率分布示意圖。
[0027]圖3a、圖3b、圖3c為本發明一采集應用場景中3批IP地址使用次數分布示意圖。
[0028]圖4a和圖4b分別為本發明一采集應用場景中任務執行期間發送HTTP請求和接收響應的吞吐量。
【具體實施方式】
[0029]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整的描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。下面配合所附圖對本發明的特征和優點作詳細說明。
[0030]本發明的定向信息抓取場景中大規模IP地址資源使用方法包含IP地址分配機制及基于該分配機制的IP地址可用性評估機制。
[0031]IP地址分配機制:針對特定的設置了訪問頻率限制的網絡資源,根據IP地址下次可用時刻(即下次可訪問網絡資源的時刻)建立包含全部IP地址的優先隊列(下次可用時刻值越小,優先級越高)。在向某個網絡信息采集任務分配可用IP時,取出優先級最高(下次可用時刻最小)的IP地址(設其可用時刻為時刻t),并隨即根據目標網絡資源的訪問頻率限制值來更新該IP地址的下次可用時刻,重新將其放入優先隊列。若當前時刻大于或等于t,則當前任務可立即使用該IP地址,否則當前任務阻塞直至當前時刻大于或等于t,方可使用該IP地址。
[0032]IP地址可用性評估機制:針對每個IP地址維護該IP地址的使用次數un和訪問失敗次數f η,則當前該IP地址的訪問成功率可定義為1-fn/un。在IP地址分配機制的基礎上,增加根據IP地址訪問成功率確定是否選用該IP地址的機制。即對于從優先隊列中取出的IP地址,以1-fn/un的概率選用,fn/un的概率放棄;若當前IP地址被放棄,則繼續從優先隊列中取出IP地址,直到有一個IP地址被選用。
[0033]在架構上,本發明的定向信息采集中大量IP地址資源使用方法由初始化階段和使用接口組成。初始化階段在信息采集開始之前進行,用于建立IP地址優先隊列并初始化每個IP地址的可用率。在采集任務進行中,本方法提供的使用接口包括IP
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影