本申請涉及網(wǎng)絡領域,特別涉及一種數(shù)據(jù)獲取方法和裝置。
背景技術:
通常,在使用網(wǎng)絡爬蟲程序獲取數(shù)據(jù)的過程中,會由于網(wǎng)絡故障、網(wǎng)站暫時癱瘓以及的URL(Uniform Resource Locator,統(tǒng)一資源定位符)失效等情況而導致的數(shù)據(jù)無法獲取的情況,使得需要提供一種數(shù)據(jù)獲取方法,實現(xiàn)在網(wǎng)絡故障、網(wǎng)站暫時癱瘓以及URL失效等情況下數(shù)據(jù)的獲取。
在現(xiàn)有技術中,通過將頁面URL記錄后存儲在隊列中,隔一個間隔時間重復一次,在重復次數(shù)達到一個閥值時,若仍然無法獲取該的數(shù)據(jù)之后,判定該URL已失效,并停止對該的數(shù)據(jù)的獲取。
但是在采用現(xiàn)有技術所提供的方法時,由于無法找到一個合適的間隔時間。若設置時間間隔過長,容易造成因網(wǎng)絡故障而導致的數(shù)據(jù)無法獲取的在隊列中大量堆積,加重內(nèi)存負擔;若設置的時間間隔過短會造成因URL失效和網(wǎng)站暫時癱瘓而導致的數(shù)據(jù)無法獲取的被頻繁重試,加重服務器和網(wǎng)絡負擔。同時,由于網(wǎng)站暫時癱瘓的恢復時間無法度量,可能在網(wǎng)站恢復之前該URL已經(jīng)達到重試次數(shù)被丟棄,造成因網(wǎng)站暫時癱瘓而導致的數(shù)據(jù)無法獲取的被丟棄的情況,使得在使用現(xiàn)有技術所提供的方法時,降低了數(shù)據(jù)獲取的可靠性,降低了數(shù)據(jù)獲取的效率。
技術實現(xiàn)要素:
為了提高數(shù)據(jù)獲取的可靠性,提高數(shù)據(jù)獲取的效率,本申請實施例提供了 一種數(shù)據(jù)獲取方法和裝置。所述技術方案如下:
本申請?zhí)峁┝艘环N數(shù)據(jù)獲取方法,所述方法包括:
獲取失敗的數(shù)據(jù)爬取任務,其中,所述數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;
根據(jù)所述數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定所述失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間;
根據(jù)所述重新進行數(shù)據(jù)爬取的時間,對所述失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。
本申請還提供了一種數(shù)據(jù)獲取裝置,所述裝置包括:
獲取模塊,用于獲取失敗的數(shù)據(jù)爬取任務,其中,所述數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;
第一處理模塊,用于根據(jù)所述數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定所述失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間;
第二處理模塊,用于根據(jù)所述重新進行數(shù)據(jù)爬取的時間,對所述失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。
本申請實施例提供了一種數(shù)據(jù)獲取方法和裝置,包括:獲取失敗的數(shù)據(jù)爬取任務,其中,數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間;根據(jù)重新進行數(shù)據(jù)爬取的時間,對失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。通過根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,使得可以根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間對該失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間進行調(diào)整,從而避免了對由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的遺漏,保證了數(shù)據(jù)獲取的可靠性,同時避免了短時間內(nèi)通 過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
附圖說明
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請實施例提供的一種數(shù)據(jù)獲取方法流程圖;
圖2是本申請實施例提供的一種數(shù)據(jù)獲取方法流程圖;
圖3是本申請實施例提供的一種數(shù)據(jù)獲取裝置結構示意圖;
圖4是本申請實施例提供的一種數(shù)據(jù)獲取裝置結構示意圖。
具體實施方式
為使本申請的目的、技術方案和優(yōu)點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
本申請實施例提供一種數(shù)據(jù)獲取方法,該方法應用場景包括通過網(wǎng)絡爬蟲程序通過執(zhí)行爬取任務獲取網(wǎng)頁數(shù)據(jù),該爬取任務至少包括所要獲取的網(wǎng)頁數(shù)據(jù)所在的網(wǎng)頁標識。除此之外,該方法還可以應用于其他根據(jù)網(wǎng)頁標識信息獲取網(wǎng)頁數(shù)據(jù)的場景,該網(wǎng)頁標識可以為該網(wǎng)頁的URL(Uniform Resource Locator,統(tǒng)一資源定位符),本申請實施例對具體的應用場景不加以限定。
實施例一為本申請實施例提供的一種數(shù)據(jù)獲取方法,參照圖1所示,該方 法包括:
101、獲取失敗的數(shù)據(jù)爬取任務。
其中,數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間。獲取失敗的數(shù)據(jù)爬取任務,可以通過實時監(jiān)測的方式或者預設的存儲失敗的數(shù)據(jù)爬取任務的數(shù)據(jù)庫中獲取。
第一種情況,當監(jiān)測到數(shù)據(jù)爬取任務失敗時,可以獲取該數(shù)據(jù)爬取任務的失敗時間(即該時間可以是初次數(shù)據(jù)爬取失敗的時間,也可以是執(zhí)行主體掃描到該數(shù)據(jù)爬取任務失敗時的時間,對此本申請不做任何限定),以及執(zhí)行主體所設置的在數(shù)據(jù)爬取失敗時重新執(zhí)行爬取任務的次數(shù),然后,根據(jù)實際爬取目標的需求,將將所述數(shù)據(jù)爬取失敗的次數(shù)和所述數(shù)據(jù)爬取失敗的時間至預設的數(shù)據(jù)庫。其中,爬取目標可以是指網(wǎng)站訪問量的爬取、微博點擊量的爬取等。
此處需要注意的是,若系統(tǒng)未設置在數(shù)據(jù)爬取失敗時重新執(zhí)行爬取任務的次數(shù),則可默認為數(shù)據(jù)爬取失敗的次數(shù)為零。
第二種情況,針對爬取效率較低的系統(tǒng)(即執(zhí)行主體),對于步驟101獲取失敗的數(shù)據(jù)爬取任務,還可以是從預設的存儲失敗的數(shù)據(jù)爬取任務的數(shù)據(jù)庫中來獲取,以提高該執(zhí)行主體執(zhí)行數(shù)據(jù)爬取任務的效率。
具體地,在執(zhí)行主體執(zhí)行從任務池中獲取的數(shù)據(jù)爬取任務時,若爬取失敗,則將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫,該失敗的數(shù)據(jù)爬取任務包括數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間、所處于爬取失敗的環(huán)境等信息。
該預設的數(shù)據(jù)庫可以被預先設置在服務器上,也可以被預先設置在裝置的緩存中,還可以被預先設置在裝置的數(shù)據(jù)庫中,本申請實施例對該預設的數(shù)據(jù)庫所在的位置不加以限定。
其中,該預設的數(shù)據(jù)庫所包含的至少一個失敗的數(shù)據(jù)爬取任務可以根據(jù)添加的時間進行排序。
102、根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù) 爬取任務重新進行數(shù)據(jù)爬取的時間。
具體地,首先,可以根據(jù)所執(zhí)行的數(shù)據(jù)爬取任務的不同爬取目標、數(shù)據(jù)爬取失敗的次數(shù)或數(shù)據(jù)爬取失敗的時間來確定數(shù)據(jù)爬取的時間間隔;其中,這里所說的爬取目標,可以是指網(wǎng)站訪問量的爬取、微博點擊量的爬取等環(huán)境,對此本申請不做任何限定。然后,根據(jù)所述數(shù)據(jù)爬取的時間間隔、所述數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,生成所述失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間。
103、根據(jù)重新進行數(shù)據(jù)爬取的時間,對失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務。
具體地,可利用判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間,以重新執(zhí)行所述失敗的數(shù)據(jù)爬取任務,其中,網(wǎng)絡爬蟲程序當前要執(zhí)行的時間,可以根據(jù)所需要執(zhí)行的數(shù)據(jù)爬取的環(huán)境來設置,對此本申請不做任何限定。
進一步地,當所述重新進行數(shù)據(jù)爬取的時間不滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間時,步驟105還可以包括:將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫中,以待進行下一次的重新進行數(shù)據(jù)爬取的時間判斷。
本申請實施例提供了一種數(shù)據(jù)獲取方法,通過根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,使得可以根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間對該失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間進行調(diào)整,從而避免了對由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的遺漏,保證了數(shù)據(jù)獲取的可靠性,同時避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高 了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務,不僅進一步的避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率,還保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在網(wǎng)站暫時癱瘓解決之后,該信息的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
實施例二為本申請實施例提供的一種數(shù)據(jù)獲取方法,參照圖2所示,該方法包括:
201、獲取失敗的數(shù)據(jù)爬取任務,其中,數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間。
具體地,在預設周期之后,從預設的數(shù)據(jù)庫中獲取失敗的數(shù)據(jù)爬取任務。
從預設的數(shù)據(jù)庫中獲取失敗的數(shù)據(jù)爬取任務的過程可以為:
在預設周期之后,通過對預設的數(shù)據(jù)庫中所包含的失敗的數(shù)據(jù)爬取任務進行掃描,并根據(jù)該預設的數(shù)據(jù)庫中的所包含的失敗的數(shù)據(jù)爬取任務的添加時間順序,從預設的數(shù)據(jù)庫中獲取添加時間較早的失敗的數(shù)據(jù)爬取任務。
通過根據(jù)該預設的數(shù)據(jù)庫中的所包含的失敗的數(shù)據(jù)爬取任務的添加時間順序,獲取失敗的數(shù)據(jù)爬取任務,使得添加時間較早的待重試的爬取任務優(yōu)選進行爬取,從而保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在恢復至數(shù)據(jù)可獲取的狀態(tài)時,該數(shù)據(jù)的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
202、根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間。
具體的,根據(jù)確定的數(shù)據(jù)爬取時間間隔、數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間。
為了進一步說明本申請實施例的方法,假設數(shù)據(jù)爬取失敗的次數(shù)為M,數(shù)據(jù)爬取的時間間隔為N,數(shù)據(jù)爬取失敗的時間為TF,該失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間為TF;
可以根據(jù)第一預設函數(shù),實現(xiàn)根據(jù)數(shù)據(jù)爬取時間間隔和數(shù)據(jù)爬取失敗的次數(shù),生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間的過程,該第一預設函數(shù)TS1可以為公式[1]所示:
TS1=N×aM [1]
還可以根據(jù)第二預設函數(shù),實現(xiàn)根據(jù)數(shù)據(jù)爬取的時間間隔和數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間的過程,該第二預設函數(shù)TS2可以為公式[2]所示:
TS2=TF+N×a [2]
另外,還可以根據(jù)第三預設函數(shù),實現(xiàn)根據(jù)數(shù)據(jù)爬取的時間間隔、數(shù)據(jù)爬取失敗的時間和數(shù)據(jù)爬取失敗的次數(shù),生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間的過程,該第三預設函數(shù)TS3可以為公式[3]所示:
TS3=TF+N×aM [3]
其中,上述公式[1]-公式[3]中的a為預設系數(shù),且a大于1。
需要說明的是,上述第一預設函數(shù)、第二預設函數(shù)和第三預設函數(shù)僅僅是示例性的,除此之外,還可以包括其他函數(shù)性質(zhì)為非減函數(shù)的預設函數(shù),本申請實施例對具體的預設函數(shù)不加以限定。
通過所確定的數(shù)據(jù)爬取的時間間隔、數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,保證了數(shù)據(jù)爬取失敗的次數(shù)較多的失敗的數(shù)據(jù)爬取任務的執(zhí)行時間晚于數(shù)據(jù)爬取失敗的次數(shù)較少的失敗的數(shù)據(jù)爬取任務的執(zhí)行時間,而失敗次數(shù)越多,說明該數(shù)據(jù)爬取任務的成功執(zhí)行的概率越低,保證了成功執(zhí)行的概率越高的任務優(yōu)先執(zhí)行,保證 了數(shù)據(jù)的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,通過數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在恢復至數(shù)據(jù)可獲取的狀態(tài)時,該數(shù)據(jù)的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,通過根據(jù)數(shù)據(jù)爬取失敗的次數(shù),生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
203、判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;若滿足,則執(zhí)行步驟204,若不滿足,則執(zhí)行步驟205。
其中,網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間為可以設置為數(shù)據(jù)爬取時間間隔的整數(shù)倍。
通過判定重新進行數(shù)據(jù)爬取的時間小于網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間,避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
204、設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務。
具體地,將該失敗的數(shù)據(jù)爬取任務添加至網(wǎng)絡爬蟲程序的任務池中。
通過將失敗的數(shù)據(jù)爬取任務設置為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務,保證了該失敗的數(shù)據(jù)爬取任務的及時重新爬取,進而保證了數(shù)據(jù)的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
值得注意的是,步驟203至步驟204是實現(xiàn)根據(jù)重新進行數(shù)據(jù)爬取的時間,對失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務,除了上述步驟的方式之外,還可以通過其他方式實現(xiàn)該過程,本申請實施例對具體的方式不加以限定。
由于重新進行數(shù)據(jù)爬取的時間是根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失 敗的時間生成的,從而保證了數(shù)據(jù)爬取失敗的次數(shù)較多的失敗的數(shù)據(jù)爬取任務的執(zhí)行時間晚于數(shù)據(jù)爬取失敗的次數(shù)較少的失敗的數(shù)據(jù)爬取任務的執(zhí)行時間,而失敗次數(shù)越多,說明該數(shù)據(jù)爬取任務的成功執(zhí)行的概率越低,保證了成功執(zhí)行的概率越高的任務優(yōu)先執(zhí)行,保證了數(shù)據(jù)的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
205,將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫中,以待進行下一次的重新進行數(shù)據(jù)爬取的時間判斷,并獲取預設的數(shù)據(jù)庫中該失敗的數(shù)據(jù)爬取任務對應的下一個失敗的數(shù)據(jù)爬取任務。
通過在重新進行數(shù)據(jù)爬取的時間不滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間時,將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫中,避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
通過執(zhí)行本申請實施例的方法,不僅避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,還保證了該網(wǎng)站在恢復至數(shù)據(jù)可獲取的狀態(tài)時,該數(shù)據(jù)的及時獲取,從而提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
本申請實施例提供了一種數(shù)據(jù)獲取方法,通過根據(jù)待重試的爬取任務的重試次數(shù)以及上一次重試時的第一任務時間,生成將要重試待重試的爬取任務的第二任務時間,使得可以根據(jù)待重試的爬取任務的重試次數(shù)和上一次的重試時間對該待重試的爬取任務的重試時間進行調(diào)整,從而避免了對由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的遺漏,保證了數(shù)據(jù)獲取的可靠性。另外,通過根據(jù)待重試的爬取任務的重試次數(shù)以及上一次重試時的第一任務時間,生成將要重試待重試的爬取任務的第二任務時間,避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的 網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,通過判斷第二任務時間是否滿足預設條件,若是,則設置待重試的爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務;否則,獲取該待重試的爬取任務的下一個待重試的爬取任務,不設置爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務,不僅進一步的避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率,還保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在網(wǎng)站暫時癱瘓解決之后,該信息的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
實施例三為本申請實施例提供的一種數(shù)據(jù)獲取裝置,參照圖3所示,該數(shù)據(jù)獲取裝置包括:
獲取模塊31,用于獲取失敗的數(shù)據(jù)爬取任務,其中,數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;
第一處理模塊32,用于根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間;
第二處理模塊33,用于根據(jù)重新進行數(shù)據(jù)爬取的時間,對失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。
所述獲取模塊,用于:針對所獲取的失敗的數(shù)據(jù)爬取任務,獲得數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;將所述數(shù)據(jù)爬取失敗的次數(shù)和所述數(shù)據(jù)爬取失敗的時間至預設的數(shù)據(jù)庫。
可選的,第一處理模塊32可以包括:
確定子模塊,用于確定數(shù)據(jù)爬取的時間間隔;
生成子模塊,用于根據(jù)確定數(shù)據(jù)爬取的時間間隔、數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間。
可選的,第二處理模塊33具體用于:
判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;
若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務。
可選的,第二處理模塊33還用于:
將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫中,以待進行下一次的重新進行數(shù)據(jù)爬取的時間判斷。
本申請實施例提供了一種數(shù)據(jù)獲取裝置,該數(shù)據(jù)獲取裝置通過根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,使得可以根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間對該失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間進行調(diào)整,從而避免了對由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的遺漏,保證了數(shù)據(jù)獲取的可靠性,同時避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務,不僅進一步的避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率,還保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在網(wǎng)站暫時癱瘓解決之后,該信息的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
實施例四位本申請實施例提供的一種數(shù)據(jù)獲取裝置4,參照圖4所示,該數(shù)據(jù)獲取裝置4包括存儲器41和與存儲器41連接的處理器42,存儲器41用于存儲一組程序代碼,處理器42調(diào)用存儲器41所存儲的程序代碼用于執(zhí)行以下操作:
獲取失敗的數(shù)據(jù)爬取任務,其中,數(shù)據(jù)爬取任務至少包含:數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間;
根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間;
根據(jù)重新進行數(shù)據(jù)爬取的時間,對失敗的數(shù)據(jù)爬取任務執(zhí)行重新數(shù)據(jù)爬取任務。
可選的,處理器42調(diào)用存儲器41所存儲的程序代碼用于執(zhí)行以下操作:
將數(shù)據(jù)爬取失敗的次數(shù)和數(shù)據(jù)爬取失敗的時間至預設的數(shù)據(jù)庫。
可選的,處理器42調(diào)用存儲器41所存儲的程序代碼用于執(zhí)行以下操作:
根據(jù)預設時間間隔、數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,生成失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間。
可選的,處理器42調(diào)用存儲器41所存儲的程序代碼用于執(zhí)行以下操作:
判斷重新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;
若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務。
可選的,處理器42調(diào)用存儲器41所存儲的程序代碼用于執(zhí)行以下操作:
將失敗的數(shù)據(jù)爬取任務存儲至預設的數(shù)據(jù)庫中,以待進行下一次的重新進行數(shù)據(jù)爬取的時間判斷。
本申請實施例提供了一種數(shù)據(jù)獲取裝置,該數(shù)據(jù)獲取裝置通過根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間,確定失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間,使得可以根據(jù)數(shù)據(jù)爬取失敗的次數(shù)和/或數(shù)據(jù)爬取失敗的時間對該失敗的數(shù)據(jù)爬取任務重新進行數(shù)據(jù)爬取的時間進行調(diào)整,從而避免了對由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的遺漏,保證了數(shù)據(jù)獲取的可靠性,同時避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。另外,判斷重 新進行數(shù)據(jù)爬取的時間是否滿足網(wǎng)絡爬蟲程序當前將要執(zhí)行的時間;若滿足,則設置失敗的數(shù)據(jù)爬取任務為網(wǎng)絡爬蟲程序當前將要執(zhí)行的任務,不僅進一步的避免了短時間內(nèi)通過網(wǎng)絡爬蟲程序?qū)τ捎诰W(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的進行重復的爬取,而造成的網(wǎng)絡資源負擔和裝置的系統(tǒng)資源負擔,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率,還保證了由于網(wǎng)站暫時癱瘓等原因?qū)е碌臒o法獲取數(shù)據(jù)的在網(wǎng)站暫時癱瘓解決之后,該信息的及時獲取,從而進一步提高了數(shù)據(jù)獲取的可靠性,提高了數(shù)據(jù)獲取的效率。
上述所有可選技術方案,可以采用任意結合形成本申請的可選實施例,在此不再一一贅述。
需要說明的是:上述實施例提供的裝置在執(zhí)行數(shù)據(jù)獲取方法時,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設備的內(nèi)部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的數(shù)據(jù)獲取裝置與數(shù)據(jù)獲取方法實施例屬于同一構思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上僅為本申請的較佳實施例,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本申請的保護范圍之內(nèi)。