本發明涉及網絡爬取技術領域,具體而言,涉及一種網頁鏈接的爬取方法及裝置。
背景技術:
在網頁爬取技術中,需要對事先獲取的網頁鏈接一一進行爬取,以獲取相應的網頁內容。但是爬取的執行過程中有時會出現爬取失敗的情況,也即通過爬取網頁鏈接無法獲取到網頁鏈接對應的網頁內容。
這種情況的產生,一種可能的原因是網絡環境較差(如網速差)或者網頁鏈接對應的網站服務器無法響應;另一種可能的原因是該網頁鏈接為無效的網頁鏈接,也即該網頁鏈接不存在對應的頁面。在相關技術中,針對爬取列表中存在的網頁鏈接,無論其是否為爬取失敗的網頁鏈接,均將其作為正常鏈接爬取。該方法中,對于無效的網頁鏈接的爬取會造成爬蟲資源的浪費。
針對相關技術中對無效的網頁鏈接進行爬取會造成爬蟲資源的浪費的問題,目前尚未提出有效的解決方案。
技術實現要素:
本發明的主要目的在于提供一種網頁鏈接的爬取方法及裝置,以解決相關技術中對無效的網頁鏈接進行爬取會造成爬蟲資源的浪費的問題。
為了實現上述目的,根據本發明的一個方面,提供了一種網頁鏈接的爬取方法。
根據本發明的網頁鏈接的爬取方法包括:獲取爬取失敗的網頁鏈接;基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數;根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接;以及如果判斷出網頁鏈接為無效的網頁鏈接,則不再對網頁鏈接進行爬取。
進一步地,超時時間參數集合中存儲有各個重新爬取的爬取次數與超時時間參數之間的對應關系,且第N次重新爬取采用的超時時間參數小于第N+1次重新爬取采用的超時時間參數,其中,N為自然數。
進一步地,第N+1次重新爬取采用的超時時間參數為第N次重新爬取采用的超時時間參數的預設倍數,其中,預設倍數大于1。
進一步地,基于超時時間參數集合對網頁鏈接重新進行爬取包括:從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數;利用該超時時間參數對網頁鏈接進行爬取;當未爬取到網頁鏈接對應的網頁內容時,將網頁鏈接的爬取次數加1,重復執行從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數的步驟,直至爬取到網頁鏈接對應的網頁內容或爬取次數達到爬取次數閾值;根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接包括:如果在爬取次數達到爬取次數閾值之前,爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為有效的網頁鏈接;以及如果在爬取次數達到爬取次數閾值時,還未爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為無效的網頁鏈接。
進一步地,基于超時時間參數集合對網頁鏈接重新進行爬取包括:多次基于超時時間參數集合對網頁鏈接重新執行爬取,其中,相鄰兩次基于超時時間參數集合對網頁鏈接重新執行爬取的時間間隔為預設時間間隔。
進一步地,多次基于超時時間參數集合對網頁鏈接重新執行爬取包括:每間隔預設時間間隔基于超時時間參數集合對網頁鏈接重新執行爬取,直至爬取到網頁鏈接對應的網頁內容或者重新執行爬取的次數達到預設重復次數,根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接包括:如果在達到預設重復次數之前,爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為有效的網頁鏈接;以及如果在達到預設重復次數時,還未爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為無效的網頁鏈接。
為了實現上述目的,根據本發明的另一方面,提供了一種網頁鏈接的爬取裝置。
根據本發明的網頁鏈接的爬取裝置包括:獲取單元,用于獲取爬取失敗的網頁鏈接;爬取單元,用于基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數;判斷單元,用于根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接;以及爬取取消單元,用于在判斷出網頁鏈接為無效的網頁鏈接時,不再對網頁鏈接進行爬取。
進一步地,爬取單元包括:獲取模塊,用于從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數;第一爬取模塊,用于利用該超時時間參數對網頁鏈接進行爬取;以及重復執行模塊,用于在未爬取到網頁鏈接對應的網頁內容時,將網頁鏈接的爬取次數加1,重復執行從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數的步驟,直至爬取到網頁鏈接對應的網頁內容或爬取次數達到爬取次數閾值;判斷單元包括:第一判斷模塊,用于在爬取次數達到爬取次數閾值之前,爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為有效的網頁鏈接;第二判斷模塊,用于在爬取次數達到爬取次數閾值時,還未爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為無效的網頁鏈接。
進一步地,爬取單元包括:第二爬取模塊,用于多次基于超時時間參數集合對網頁鏈接重新執行爬取,其中,相鄰兩次基于超時時間參數集合對網頁鏈接重新執行爬取的時間間隔為預設時間間隔。
進一步地,第二爬取模塊包括:爬取子模塊,用于每間隔預設時間間隔基于超時時間參數集合對網頁鏈接重新執行爬取,直至爬取到網頁鏈接對應的網頁內容或者重新執行爬取的次數達到預設重復次數,判斷單元包括:第三判斷模塊,用于在達到預設重復次數之前,爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為有效的網頁鏈接;以及第四判斷模塊,用于在達到預設重復次數時,還未爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為無效的網頁鏈接。
通過本發明,采用包括以下步驟的方法:獲取爬取失敗的網頁鏈接;基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數;根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接;以及如果判斷出網頁鏈接為無效的網頁鏈接,則不再對網頁鏈接進行爬取,解決了相關技術中對無效的網頁鏈接進行爬取會造成爬蟲資源的浪費的問題,進而通過基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,并根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接,達到了在爬取網頁鏈接過程中有效利用爬蟲資源的效果。
附圖說明
構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是根據本發明實施例的網頁鏈接的爬取方法的流程圖;以及
圖2是根據本發明實施例的網頁鏈接的爬取裝置的示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在 這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本發明。
下面根據本發明的實施例,提供了一種網頁鏈接的爬取方法。
圖1是根據本發明實施例的網頁鏈接的爬取方法的流程圖。如圖1所示,該方法包括如下的步驟:
步驟S102,獲取爬取失敗的網頁鏈接。
通常在網頁爬取應用中,會事先將待爬取的網頁鏈接進行存儲,例如,存儲于網頁鏈接列表中,然后從列表中逐條讀取,以分別進行爬取。在對網頁鏈接執行爬取時,會出現爬取失敗的網頁鏈接,也即,對該網頁鏈接執行爬取后未獲取到該網頁鏈接對應的網頁內容。
網頁鏈接之所以爬取失敗,有可能是由于執行爬取時的網絡環境較差,或者是網頁鏈接對應的網站服務器存在問題(不穩定),也有可能是該網頁鏈接為無效的網頁鏈接,也即該網頁鏈接不存在對應的網頁。對于網絡環境、網站服務器等原因造成的爬取失敗,只是暫時性的無法爬取;而對于爬取的網頁鏈接為無效網頁鏈接的情況,則是永久性的爬取失敗。因此,根據本實施例的網頁鏈接的爬取方法用于對爬取失敗的網頁鏈接進行檢測,以判斷其是否為無效的網頁鏈接。
步驟S104,基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數。
超時時間參數為連接超時時間或者數據傳輸的最大允許時間,連接超時時間也即爬取網頁鏈接時等待對方服務器響應的時間,數據傳輸的最大允許時間也即讀取網頁鏈接并等待對方網站響應的最大時長。在對網頁鏈接執行爬取時,需要設置超時時間參數。該參數的取值可以根據業務邏輯自行設置。通常情況下,如果業務邏輯需要快速完成爬取,可以將超時時間參數設置為較小的數值;否則,可以將超時時間參數設置為較大的數值。在爬取資源較差的網站時,設置較大的超時時間參數更有利于提高爬取的成功率。但是對于無效網頁鏈接來說,設置的超時時間參數再大也無法爬取到該網頁鏈接對應的網頁內容。為了避免丟失掉一些待爬取的網頁鏈接對應的網頁內容(爬取失敗的有效鏈接對應的網頁內容),根據本發明,可以基于超時時間參數集合對網頁鏈接重新進行爬取,其中,超時時間參數集合中包括至少兩個不同的超時時間參 數。
例如,分別設置超時時間參數為2秒和3秒。爬取結果為:在超時時間參數為2秒的情況下,檢測出未爬取到網頁鏈接對應的網頁內容,在超時時間參數為3秒的情況下,檢測出爬取到了網頁鏈接對應的網頁內容。
需要說明的是,假設步驟S102中爬取失敗的網頁鏈接爬取失敗時采用的超時時間參數為t1,則在基于超時時間參數對網頁鏈接重新進行爬取時,第一次爬取可采用大于t1的超時時間參數,例如,可以是2倍的超時時間參數。
步驟S106,根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接。
在該步驟中,如果爬取結果顯示爬取執行后得到了網頁鏈接對應的網頁內容,則確定該網頁鏈接為有效的網頁鏈接;否則,確定該網頁鏈接為無效的網頁鏈接。通過基于超時時間參數對網頁鏈接進行重新爬取,可以有效避免將爬取失敗的網頁鏈接誤判為無效鏈接,進而造成爬取頁面的缺失。
例如,分別設置超時時間參數為2秒和4秒。爬取結果為:在超時時間參數為2秒的情況下,檢測出未爬取到網頁鏈接對應的網頁內容,在設置超時時間參數為4秒時,檢測出爬取到了網頁鏈接對應的網頁內容。則根據爬取結果可以判斷出網頁鏈接為有效的網頁鏈接。
步驟S108,如果判斷出網頁鏈接為無效的網頁鏈接,則不再對網頁鏈接進行爬取。
如果通過上述步驟S102至步驟S106判斷出網頁鏈接為無效的網頁鏈接,也即證明了爬取失敗的網頁鏈接并非是由于網絡原因或者網站服務器原因等造成的偶然性的爬取失敗,而是由于該網頁鏈接為無效的網頁鏈接,因而導致無法爬取到其對應的網頁內容。因此,如果判斷出網頁鏈接為無效的網頁鏈接,則可以不再對該網頁鏈接執行爬取。
根據該實施例的網頁鏈接的爬取方法,由于包括:獲取爬取失敗的網頁鏈接;基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數;根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接;以及如果判斷出網頁鏈接為無效的網頁鏈接,則不再對網頁鏈接進行爬取,解決了相關技術中對無效的網頁鏈接進行爬取會造成爬蟲資源的浪費的問題,進而通過基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,并根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接,達到了在爬取網頁鏈接過程中有效利用爬蟲資源的效果。
在一種可選的實施例中,超時時間參數集合中存儲有各個重新爬取的爬取次數與 超時時間參數之間的對應關系,且第N次重新爬取采用的超時時間參數小于第N+1次重新爬取采用的超時時間參數,其中,N為自然數。
在該實施例中,爬取次數與超時時間參數的對應關系可以是:TN+1=kTN+b,其中,TN+1為第N+1次重新爬取采用的超時時間參數,TN為第N次重新爬取采用的超時時間參數,k、b為非負數,可以根據實際情況對k、b的取值進行調整,T0可以為2。超時時間集合可以采用數列形式,例如T[n]={T0,T1,……,TN,TN+1},數列中元素的下角標表示爬取次數,元素數值即為超時時間參數;也可以采用索引表的方式等存儲爬取次數與超時時間參數之間的對應關系,具體采用何種方式本申請不做限定。
通常,在爬取某一網頁鏈接時,如果設置的超時時間參數較小,則爬取的速度越快,即在爬取該網頁鏈接時占用的時間越少。這在爬取數量巨大的網頁鏈接時往往是非常重要的。反之,如果設置的超時時間參數越大,在爬取一條鏈接時占用的時間越長,但是能夠爬取到網頁內容的幾率越大,也即網絡爬取的準確性越高。在該實施例中,通過在與爬取次數相關的不同的超時時間參數下對網頁鏈接執行爬取,可以對網頁鏈接是否為無效的網頁鏈接進行較為準確地判斷。
為了提高無效網頁鏈接的檢測效率,優選地,第N+1次重新爬取采用的超時時間參數為第N次重新爬取采用的超時時間參數的預設倍數,其中,預設倍數大于1。也即,TN+1=k1TN,其中,k1大于1。
在一種可選的實施例中,基于超時時間參數集合對網頁鏈接重新進行爬取包括:從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數;利用該超時時間參數對網頁鏈接進行爬取;當未爬取到網頁鏈接對應的網頁內容時,將網頁鏈接的爬取次數加1,重復執行從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數的步驟,直至爬取到網頁鏈接對應的網頁內容或爬取次數達到爬取次數閾值;根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接包括:如果在爬取次數達到爬取次數閾值之前,爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為有效的網頁鏈接;以及如果在爬取次數達到爬取次數閾值時,還未爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為無效的網頁鏈接。
優選地,可以采用隊列的方式對爬取次數進行計數,具體地,包括:添加網頁鏈接至第一爬取失敗隊列;記錄對網頁鏈接重新進行爬取的爬取次數,其中,第一爬取失敗隊列中存儲有爬取失敗的網頁鏈接及對應的爬取次數,爬取次數的初始值默認值為0;從第一爬取失敗隊列中讀取一次網頁鏈接,從超時時間參數集合中獲取與當前爬取次數(0次)相關的超時時間參數(例如,2秒),并基于該超時時間參數對網頁鏈接進行爬取;檢測是否爬取到網頁鏈接對應的網頁內容;如果檢測結果為否,則將網頁鏈接重新添加至第一爬取失敗隊列,并將爬取次數加1,并重復執行上述步驟(也 即從超時時間參數集合中選取與后續爬取次數相對應的超時時間參數,并基于超時時間參數執行網頁爬取),依次類推,直到爬取到網頁鏈接對應的網頁內容或爬取次數達到爬取次數閾值,結束。
采取隊列的方式對爬取次數進行計數,可使基于超時時間參數集合對網頁鏈接重新進行爬取的執行過程變得更加簡單易行。具體地,首先將爬取失敗的網頁鏈接添加至隊列中,讀取一次該網頁鏈接并對其執行爬取,檢測是否爬取到該網頁鏈接對應的網頁內容。如果檢測到該網頁內容,則得到爬取結果,結束;如果未檢測到網頁內容,則將該網頁鏈接重新添加至隊列,并重新進行爬取,依次類推,直到爬取到網頁內容或者達到爬取次數閾值為止。每次進行爬取時采用的超時時間參數和爬取次數相關,例如,在第一次對某網頁鏈接進行爬取時,設置的超時時間參數為超時時間參數集合中與爬取次數為0次對應的超時時間參數,如3秒,第二次對該網頁鏈接進行爬取時,設置的超時時間參數為超時時間參數集合中與爬取次數為1次對應的超時時間參數(如5秒)。
由于對于無效的網頁鏈接而言,爬取再多次也無法得到該網頁鏈接對應的網頁內容,但是對于有效的網頁鏈接來說,即使偶然由于網絡原因或者網站服務器的原因爬取失敗,但是基于不同的超時時間參數進行多次重新爬取的話,極有可能爬取到該網頁鏈接對應的網頁內容。因此,該實施例預先設置了一個爬取次數閾值,在爬取次數達到該爬取次數閾值之前,如果爬取到了網頁鏈接對應的網頁內容,則可以確定該網頁鏈接為有效的網頁鏈接。如果爬取次數達到了爬取次數閾值,仍未爬取到該網頁鏈接對應的網頁內容,則可以確定該網頁鏈接為無效的網頁鏈接。該實施例在不影響無效網頁鏈接的檢測準確性的前提下,有效減少了執行爬取的次數。
需要說明的是,爬取次數閾值可以基于經驗值設置,通常,相鄰兩次爬取采用的超時時間參數的差值越大,爬取次數閾值可以相對設置的越小。為了提高無效網頁鏈接檢測的準確性,可以將爬取次數閾值設置的略大一些。
在一種可選的實施例中,基于超時時間參數集合對網頁鏈接重新進行爬取包括:多次基于超時時間參數集合對網頁鏈接重新執行爬取,其中,相鄰兩次基于超時時間參數集合對網頁鏈接重新執行爬取的時間間隔為預設時間間隔。
具體來說,在基于超時間參數集合進行網頁鏈接重新爬取時,可能由于當時的網絡環境原因或者網站服務器的原因,使得基于超時間參數集合進行網頁鏈接重新爬取均爬取失敗。例如,在某月某日,基于超時間參數集合進行網頁鏈接重新爬取,但是該日網頁鏈接對應的網站服務器出現了故障,正在維修,而在該日之后,即恢復了正常的使用。因此,在上述情況下,如果斷定該網頁鏈接為無效的網頁鏈接是不正確的。于是,本實施例提出,如果前一次基于超時時間參數集合對網頁鏈接重新進行爬取時 爬取失敗,則在經過預設時間間隔之后再基于超時時間參數集合對網頁鏈接重新進行爬取。例如,在上個例子中,在經過3天之后,再基于超時間參數集合對網頁鏈接重新進行爬取。
在一種可選的實施例中,多次基于超時時間參數集合對網頁鏈接重新執行爬取包括:每間隔預設時間間隔基于超時時間參數集合對網頁鏈接重新執行爬取,直到爬取到網頁鏈接對應的網頁內容或者直到重新執行爬取的次數達到預設重復次數,根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接包括:如果在達到預設重復次數之前,爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為有效的網頁鏈接;以及如果在達到預設重復次數時,未爬取到網頁鏈接對應的網頁內容,則確定網頁鏈接為無效的網頁鏈接。
優選地,可以采用隊列的形式對重新基于超時時間參數集合執行爬取的執行次數進行計數。具體地,包括:將網頁鏈接添加至第二爬取失敗隊列;記錄基于超時時間參數集合對網頁鏈接重新執行爬取的執行次數,其中,執行次數的默認值為0;每間隔預設時間間隔從第二爬取失敗隊列讀取一次網頁鏈接,并基于超時時間參數集合對網頁鏈接重新執行爬取;檢測基于超時時間參數集合對網頁鏈接重新進行爬取是否爬取到網頁鏈接對應的網頁內容;以及如果檢測結果為否,則將網頁鏈接重新添加至第二爬取失敗隊列,并將執行次數加1,并重復執行每間隔預設時間間隔從第二爬取失敗隊列讀取一次網頁鏈接的步驟,直到爬取到網頁內容或者執行次數達到預設重復次數。
采取隊列的方式進行計數,可使得多次基于超時時間參數集合對網頁鏈接重新進行爬取的執行過程更加簡單易行。需要說明的是,這里的執行次數,即基于超時時間參數集合對網頁鏈接重新進行爬取的執行次數,執行次數的閾值為預設重復次數。例如,在3月1日,基于超時時間參數集合對網頁鏈接重新進行爬取,爬取失敗;在3月2日,基于超時時間參數集合對網頁鏈接重新進行爬取,同樣爬取失敗,上述的執行次數為2次。
在上述實施例中,如果在隊列中記錄的執行次數未達到預設重復次數之前,檢測出爬取到網頁內容,則確定該網頁鏈接為有效的網頁鏈接;如果在執行次數達到預設重復次數時,還未爬取到網頁內容,則判斷出該網頁鏈接為無效的網頁鏈接。需要說明的是,預設重復次數可以根據經驗值設置,為了提高檢測的準確性,可以將預設重復次數設置為較大的值。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
下面根據本發明的實施例,提供了一種網頁鏈接的爬取裝置。
需要說明的是,根據本發明實施例的網頁鏈接的爬取裝置可以用于執行根據本發明實施例的網頁鏈接的爬取方法;根據本發明實施例的網頁鏈接的爬取方法也可以通過根據本發明實施例的網頁鏈接的爬取裝置來執行。
圖2是根據本發明實施例的網頁鏈接的爬取裝置的示意圖。如圖2所示,該裝置包括:獲取單元20、爬取單元40、判斷單元60和爬取取消單元80。
獲取單元20,用于獲取爬取失敗的網頁鏈接。
爬取單元40,用于基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數。
判斷單元60,用于根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接。
爬取取消單元80,用于在判斷出網頁鏈接為無效的網頁鏈接時,不再對網頁鏈接進行爬取。
根據該實施例的網頁鏈接的爬取裝置,由于包括:獲取單元20,用于獲取爬取失敗的網頁鏈接;爬取單元40,用于基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,其中,超時時間參數集合中包括至少兩個不同的超時時間參數;判斷單元60,用于根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接;爬取取消單元80,用于在判斷出網頁鏈接為無效的網頁鏈接時,不再對網頁鏈接進行爬取,解決了相關技術中對無效的網頁鏈接進行爬取會造成爬蟲資源的浪費的問題,進而通過爬取單元40基于超時時間參數集合對網頁鏈接重新進行爬取,得到爬取結果,判斷單元60根據爬取結果判斷網頁鏈接是否為無效的網頁鏈接,達到了在爬取網頁鏈接過程中有效利用爬蟲資源的效果。
在一種可選的實施例中,爬取單元40包括:獲取模塊,用于從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數;第一爬取模塊,用于利用該超時時間參數對網頁鏈接進行爬取;以及重復執行模塊,用于在未爬取到網頁鏈接對應的網頁內容時,將網頁鏈接的爬取次數加1,重復執行從超時時間參數集合中獲取與網頁鏈接的爬取次數對應的超時時間參數的步驟,直至爬取到網頁鏈接對應的網頁內容或爬取次數達到爬取次數閾值;判斷單元60包括:第一判斷模塊,用于在爬取次數達到爬取次數閾值之前,爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為有效的網頁鏈接;第二判斷模塊,用于在爬取次數達到爬取次數閾值時,還未爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為無效的網頁鏈接。
在一種可選的實施例中,爬取單元40包括:第二爬取模塊,用于多次基于超時時 間參數集合對網頁鏈接重新執行爬取,其中,相鄰兩次基于超時時間參數集合對網頁鏈接重新執行爬取的時間間隔為預設時間間隔。
在一種可選的實施例中,第二爬取模塊包括:爬取子模塊,用于每間隔預設時間間隔基于超時時間參數集合對網頁鏈接重新執行爬取,直到爬取到網頁鏈接對應的網頁內容或者直到重新執行爬取的次數達到預設重復次數,判斷單元60包括:第三判斷模塊,用于在達到預設重復次數之前,爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為有效的網頁鏈接;以及第四判斷模塊,用于在達到預設重復次數時,未爬取到網頁鏈接對應的網頁內容的情況下,確定網頁鏈接為無效的網頁鏈接。
本實施例中所提供的各個模塊與方法實施例對應步驟所提供的使用方法相同、應用場景也可以相同。當然,需要注意的是,上述模塊涉及的方案可以不限于上述實施例中的內容和場景,且上述模塊可以運行在計算機終端或移動終端,可以通過軟件或硬件實現。
顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。
以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。