一種爬取網絡數據的方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網技術領域,特別涉及一種爬取網絡數據的方法和裝置。
【背景技術】
[0002]隨著互聯(lián)網技術的發(fā)展,互聯(lián)網的應用越來越廣泛,互聯(lián)網中網絡數據的數據量也越來越大。人們可以通過瀏覽器在互聯(lián)網中瀏覽網絡數據,如新聞、視頻和小說等。為了方便用戶獲取更多的網絡數據,一些網站經常會從其他網站中爬取網絡數據,將爬取到的網絡數據設置在本網站中,爬取網絡數據的處理通常由爬取服務器來完成。
[0003]爬取服務器中存儲有大量的網址,這些網址可以是技術人員輸入的,也可以是爬取服務器在爬取網絡數據的過程中獲取到的,爬取服務器會按照網址的獲取順序向網址對應的網站服務器發(fā)送數據請求,網站服務器接收到數據請求后,會返回相應的網絡數據,爬取服務器則會對網絡數據進行分析,獲取有用的網絡數據并進行存儲,同時還可以對其中包含的網址進行存儲,用于后續(xù)的爬取過程。
[0004]在實現本發(fā)明的過程中,發(fā)明人發(fā)現現有技術至少存在以下問題:
[0005]網站服務器通常設置有訪問頻率的上限,由于爬取服務器按照網址的獲取順序向網站服務器發(fā)送數據請求,因此經常會出現在某時間段內向某網站服務器發(fā)送大量的數據請求的情況,如果發(fā)送數據請求的頻率大于該網站的訪問頻率的上限,該網站服務器將會屏蔽爬取服務器的IP (Internet Protocol,互聯(lián)網協(xié)議)地址,導致爬取服務器在一定的時間段內無法從該網站服務器中爬取網絡數據,從而使得爬取服務器爬取網絡數據的效率較低。
【發(fā)明內容】
[0006]為了解決現有技術的問題,本發(fā)明實施例提供了一種爬取網絡數據的方法和裝置。所述技術方案如下:
[0007]第一方面,提供了一種爬取網絡數據的方法,所述方法包括:
[0008]按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名;
[0009]在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在所述選取的域名對應的網址隊列中抽取待爬取的網址,對所述待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名。
[0010]第二方面,提供了一種爬取網絡數據的裝置,所述裝置包括:
[0011]選取模塊,用于按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名;
[0012]爬取模塊,用于在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在所述選取的域名對應的網址隊列中抽取待爬取的網址,對所述待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名。
[0013]本發(fā)明實施例提供的技術方案帶來的有益效果是:
[0014]本發(fā)明實施例中,按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名,在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在選取的域名對應的網址隊列中抽取待爬取的網址,對待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名,通過上述方法,如果需要對一個域名進行多次爬取(每次爬取該域名下一個網址中的網絡數據),可以控制相鄰兩次爬取的時間間隔大于預設的時間間隔閾值,進而可以控制對該域名的訪問頻率不會超過某一上限值,因此,爬取服務器的IP將不會被網站服務器屏蔽,從而可以提高爬取網絡數據的效率。
【附圖說明】
[0015]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0016]圖1是本發(fā)明實施例提供的一種爬取網絡數據的方法流程圖;
[0017]圖2是本發(fā)明實施例提供的一種系統(tǒng)框架圖;
[0018]圖3是本發(fā)明實施例提供的一種爬取網絡數據的裝置結構示意圖;
[0019]圖4是本發(fā)明實施例提供的一種爬取服務器的結構示意圖。
【具體實施方式】
[0020]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0021]實施例一
[0022]本發(fā)明實施例提供了一種爬取網絡數據的方法,如圖1所示,該方法的處理流程可以包括如下的步驟:
[0023]步驟101,按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名。
[0024]步驟102,在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在選取的域名對應的網址隊列中抽取待爬取的網址,對待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名。
[0025]本發(fā)明實施例中,按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名,在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在選取的域名對應的網址隊列中抽取待爬取的網址,對待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名,通過上述方法,如果需要對一個域名進行多次爬取(每次爬取該域名下一個網址中的網絡數據),可以控制相鄰兩次爬取的時間間隔大于預設的時間間隔閾值,進而可以控制對該域名的訪問頻率不會超過某一上限值,因此,爬取服務器的IP將不會被網站服務器屏蔽,從而可以提高爬取網絡數據的效率。
[0026]實施例二
[0027]本發(fā)明實施例提供了一種爬取網絡數據的方法,該方法的執(zhí)行主體為爬取服務器。其中,爬取服務器可以是某瀏覽器的后臺服務器,也可以是某網站的后臺服務器,爬取服務器可以是一臺服務器,也可以是由多臺服務器組成的服務器組。
[0028]下面將結合【具體實施方式】,對圖1所示的處理流程進行詳細的說明,內容可以如下:
[0029]步驟101,按照預設的輪詢順序,在預先存儲的域名隊列中逐個選取待爬取的域名。
[0030]在實施中,技術人員可以在爬取服務器中預先存儲多個網站的域名,這些域名可以按照預先設置的輪詢順序以域名隊列的形式進行存儲。爬取服務器中還可以對應每個網站的域名存儲該域名下的多個網址,組成該域名對應的網址隊列。爬取服務器可以按照預先設置的輪詢順序,在域名隊列中逐個選取域名,作為待爬取的域名。爬取服務器可以在達到預設的選取周期時進行選取,也可以在接收到選取指令時進行選取。
[0031]步驟102,在每次選取待爬取的域名后,如果選取的域名上一次被爬取的時間與當前時間的時間間隔超過預設的時間間隔閾值,則在選取的域名對應的網址隊列中抽取待爬取的網址,對待爬取的網址進行網絡數據爬取,如果選取的域名上一次被爬取的時間與當前時間的時間間隔未超過預設的時間間隔閾值,則選取下一個待爬取的域名。
[0032]在實施中,爬取服務器中可以預先設置時間間隔閾值,該時間間隔閾值可以由技術人員通過多次試驗得到。當對同一域名進行網絡數據爬取的時間間隔大于時間間隔閾值時,爬取服務器發(fā)送的用于爬取網絡數據的數據請求將不會被該域名對應的網絡服務器屏蔽。
[0033]具體地,每當爬取服務器對某域名下的網址進行網絡數據爬取時,都可以對本次爬取網絡數據的起始時間進行記錄。爬取服務器按照預設的輪詢順序選取該域名作為待爬取的域名后,可以確定記錄中上一次爬取該域名的時間與當前時間的時間間隔,然后可以將該時間間隔與預設的時間間隔閾值進行對比,如果該時間間隔大于預設的時間間隔閾值,則可以在該域名對應的網址隊列中抽取某一網址,作為待爬取的網址,然后向該網址發(fā)送數據請求,上述域名對應的網絡服務器則會返回相應的網絡數據,爬取服務器接收到網絡數據后,可以從網絡數據中獲取有價值的信息。例如,爬取