本發(fā)明實施例涉及網(wǎng)絡應用技術領域,尤其涉及一種數(shù)據(jù)抓取方法及裝置。
背景技術:
數(shù)據(jù)抓取是目前從互聯(lián)網(wǎng)中獲取信息的一種基本方式。
現(xiàn)有技術中的數(shù)據(jù)抓取方式,通常是利用網(wǎng)絡爬蟲進行爬取,網(wǎng)絡爬蟲可以基于種子url(uniformresourcelocator,統(tǒng)一資源定位符)進行深入遍歷抓取,但是抓取的url和抓取內(nèi)容均無法控制,因此會導致獲得很多無效信息。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種數(shù)據(jù)抓取方法及裝置,用以解決現(xiàn)有技術中數(shù)據(jù)抓取有效性及準確度低的技術問題。
第一方面,本發(fā)明實施例中提供了一種數(shù)據(jù)抓取方法,包括:
基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送所述待抓取url至抓取服務器;
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
可選地,所述推送所述待抓取url至抓取服務器包括:
推送一批第一數(shù)量的待抓取url至所述抓取服務器;
針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,所述方法還包括:
針對所述當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,所述觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)包括:
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
所述方法還包括:
從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
可選地,所述從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)包括:
每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
第二方面,提供了一種數(shù)據(jù)抓取裝置,包括:
確定模塊,用于基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
生成模塊,用于利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送模塊,用于推送所述待抓取url至抓取服務器;
抓取觸發(fā)模塊,用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
可選地,所述推送模塊包括:
推送單元,用于推送一批第一數(shù)量的待抓取url至所述抓取服務器;
第一判斷單元,用于針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,所述推送模塊還包括:
第二判斷單元,用于針對所述當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,所述抓取觸摸模塊具體用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
所述裝置還包括:
數(shù)據(jù)獲取模塊,用于從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
可選地,所述數(shù)據(jù)獲取模塊具體用于每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
本發(fā)明實施例中,可以根據(jù)參數(shù)生成規(guī)則,基于預配置的url模板自動生成待抓取url,使得待抓取url根據(jù)實際抓取需求生成,針對性更強,抓取服務器僅抓取待抓取url對應的網(wǎng)絡數(shù)據(jù),使得基于待抓取url抓取的網(wǎng)絡數(shù)據(jù)具有針對性,而不是盲目抓取的,從而提高了數(shù)據(jù)抓取準確度,獲得有效的網(wǎng)絡數(shù)據(jù),避免抓取無效信息,還可以節(jié)省抓取資源,降低抓取的開發(fā)成本,提高抓取效率。
本發(fā)明的這些方面或其他方面在以下實施例的描述中會更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本發(fā)明實施例提供的一種數(shù)據(jù)抓取方法一個實施例流程圖;
圖2示出了本發(fā)明實施例提供的一種數(shù)據(jù)抓取方法又一個實施例流程圖;
圖3示出了本發(fā)明實施例提供的一種數(shù)據(jù)抓取裝置一個實施例的結構示意圖;
圖4示出了本發(fā)明實施例提供的一種數(shù)據(jù)抓取裝置又一個實施例的結構示意圖;
圖5示出了本發(fā)明實施例提供的一種電子裝置一個實施例的結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。
在本發(fā)明的說明書和權利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
正如背景技術中所述,目前的數(shù)據(jù)抓取是利用網(wǎng)絡爬蟲進行爬取,適用于搜素引擎的信息獲取。但是利用網(wǎng)絡爬蟲無法控制抓取的內(nèi)容,導致獲得很多無用信息,而實際應用中,存在很多針對性的數(shù)據(jù)分析需求,例如通過抓取某一平臺業(yè)務涉及的網(wǎng)絡數(shù)據(jù),進行數(shù)據(jù)分析,以了解平臺業(yè)務并相應進行改進等,而采用現(xiàn)有的數(shù)據(jù)抓取方式卻無法準確獲得想要的特定的網(wǎng)絡數(shù)據(jù)。
發(fā)明人在研究中發(fā)現(xiàn),為了提高數(shù)據(jù)抓取準確度,那么如何具有針對性、定向的進行數(shù)據(jù)抓取,以獲得想要的網(wǎng)絡數(shù)據(jù)即成為需要克服的技術問題。據(jù)此,發(fā)明人經(jīng)過一系列思考提出了本發(fā)明實施例的技術方案,在本發(fā)明實施例中,可以預配置url(uniformresourcelocator,統(tǒng)一資源定位符)模板以及參數(shù)生成規(guī)則,基于url模板以及參數(shù)生成規(guī)則,可以確定url中的更新內(nèi)容,利用更新內(nèi)容即可以更新url模板,獲得可以進行網(wǎng)絡搜索的待抓取url,基于待抓取url抓取的網(wǎng)絡數(shù)據(jù)具有針對性,而不是盲目抓取的,從而提高了數(shù)據(jù)抓取準確度,獲得有效的網(wǎng)絡數(shù)據(jù),避免抓取無效信息,避免了抓取資源的浪費,還可以降低抓取的開發(fā)成本,提高抓取效率。
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)抓取方法一個實施例的流程圖,該方法可以包括以下幾個步驟:
101:基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
從互聯(lián)網(wǎng)中進行數(shù)據(jù)抓取時,均是基于url進行。
本發(fā)明實施例中,url模板以及參數(shù)生成規(guī)則可以預配置獲得,url模板可以根據(jù)待抓取的網(wǎng)絡數(shù)據(jù)對應的數(shù)據(jù)源服務器進行配置獲得。
其中,該參數(shù)生成規(guī)則中可以包括所述更新內(nèi)容,當然,該參數(shù)生成規(guī)則可以用于生成所述更新內(nèi)容,在下面實施例中會詳細進行介紹。
其中,url是互聯(lián)網(wǎng)上標準資源的地址,互聯(lián)網(wǎng)上的每個文件都有一個唯一的url。一個文件對應一個頁面,通過url即可以獲得其標識頁面的網(wǎng)絡數(shù)據(jù)。
一個基本的url結構主要包括:協(xié)議(protocol)、服務器名稱(hostname)、路徑信息(path)、查詢信息(query)等內(nèi)容。其中,查詢信息用于向服務端傳遞參數(shù),在url中可以以“?”符號引出,傳遞的多個參數(shù)可以通過“&”符號隔開。
url模板中的至少部分內(nèi)容可以基于參數(shù)生成規(guī)則生成??蛇x地,該參數(shù)生成規(guī)則生成可以用于生成url模板中的路徑信息和/或查詢信息等,url模板中可以預配置協(xié)議以及服務器名稱等內(nèi)容。
參數(shù)生產(chǎn)規(guī)則可以包括多個,可以用于確定不同更新內(nèi)容;此外用于確定同一更新內(nèi)容的參數(shù)生產(chǎn)規(guī)則也可以包括多個??蛇x地,url模板對應的參數(shù)生成規(guī)則可以是基于用戶選擇操作確定的。
102:利用所述更新內(nèi)容更新所述url模板,生成待抓取url。
可選地,參數(shù)生成規(guī)則中可以包括替換標識,從而所述利用所述更新參數(shù)更新url模板,生成待抓取url可以是:
利用所述更新內(nèi)容替換所述url模板中所述替換標識對應的替換內(nèi)容,生成待抓取url。
url模板中可以以占位符信息來表示url模板中的替換內(nèi)容,例如@@xx@@即為占位符信息,表示其可以被更新內(nèi)容替換,該占位符信息中標識的字段信息包括“xx”即為替換標識,可以用于標識更新內(nèi)容。
舉例說明,例如url模板可以是:“http://esf.fang.com@@param@@”,其中,“@@param@@”為占位符信息,基于參數(shù)生成規(guī)則確定的更新內(nèi)容為“/housing/1_1121_0_0_0_0_1_0_0/”是一條路徑信息,參數(shù)生成規(guī)則中的替換標識為“param”,可知該更新內(nèi)容用于替換url模板中的“@@param@@”,則生成的待抓取url即為:“http://esf.fang.com/housing/1_1121_0_0_0_0_1_0_0/”。
103:推送所述待抓取url至抓取服務器。
104:觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
本實施例中,抓取服務器根據(jù)待抓取url即可以進行網(wǎng)絡數(shù)據(jù)的抓取,僅抓取待抓取url對應的網(wǎng)絡數(shù)據(jù),而不會任意爬取,使得抓取的網(wǎng)絡數(shù)據(jù)均為有效信息,提高了抓取準確度。且待抓取url可以根據(jù)參數(shù)生成規(guī)則,基于預配置的url模板自動生成,無需人工編寫提供,可以生成批量的待抓取url,實現(xiàn)網(wǎng)絡數(shù)據(jù)的批量抓取,從而降低了抓取的開發(fā)成本,提高了抓取效率。
可選地,確定得到的更新內(nèi)容可以包括多個,利用所述更新內(nèi)容生成的待抓取url也即可以包括多個,為了防止抓取服務器壓力過大,同時為了保證數(shù)據(jù)抓取速度,在某些實施例中,所述推送所述待抓取url至抓取服務器可以包括:
推送一批第一數(shù)量的待抓取url至所述抓取服務器;
針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
其中,第一數(shù)量大于第二數(shù)量。
也即將待抓取url分批推送至抓取服務器,每一批包括第一數(shù)量的待抓取url。
且由于抓取服務器進行數(shù)據(jù)抓取時會存在長尾效應,也即抓取一定數(shù)量的url之后會間隔一定時間,因此無需等待抓取服務器抓取完成一批url再推送下一批。
在實際應用中,該第一數(shù)量可以為5000,該第二數(shù)量可以為第一數(shù)量的80%。
為了避免長尾效應中抓取服務器等待時間過長而影響抓取速度,可選地,在某些實施例中,所述方法還可以包括:
針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,如果抓取等待時長超過預設時長,即便針對當前一批第一數(shù)量的待抓取url,抓取服務器未處理完成第二數(shù)量的待抓取url,也可以立即推送下一批第一數(shù)量的待抓取url至所述抓取服務器。如圖2所述,為本發(fā)明實施例提供的一種數(shù)據(jù)抓取方法又一個實施例的流程圖,該方法可以包括以下幾個步驟:
201:基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
202:利用所述更新內(nèi)容更新所述url模板,生成待抓取url。
203:推送一批第一數(shù)量的待抓取url至所述抓取服務器。
204:觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
205:針對當前一批第一數(shù)量的待抓取url,判斷所述抓取服務器是否處理完成第二數(shù)量的待抓取url,如果是,執(zhí)行步驟206,如果否,執(zhí)行步驟207。
206:推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
207:判斷所述抓取服務器的抓取等待時長是否超過預設時長,如果是,執(zhí)行步驟206,如果否,返回步驟205繼續(xù)執(zhí)行。
在某些實施例中,所述url模板以及所述參數(shù)生成規(guī)則針對任一數(shù)據(jù)源服務器配置獲得。
因此,所述基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容可以包括:
確定針對所述任一數(shù)據(jù)源服務器預配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則;
基于所述參數(shù)生成規(guī)則,確定更新內(nèi)容。
根據(jù)任一數(shù)據(jù)源服務提供的頁面類型,可以預配置多個url模板,因此,為了方便用戶了解抓取操作,在某些實施例中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容之前,所述方法還可以包括:
輸出不同數(shù)據(jù)源服務器對應的基本配置信息;所述基本配置信息可以包括url模板、數(shù)據(jù)源名稱、頁面類型以及請求類型;
所述確定針對所述任一數(shù)據(jù)源服務器預配置的url模板可以包括:
響應于針對所述任一數(shù)據(jù)源服務器的基本配置信息的用戶選擇操作,確定選擇的url模板。
請求類型可以包括post請求或者get請求,頁面類型為待抓取的網(wǎng)絡數(shù)據(jù)所在頁面的頁面類型。數(shù)據(jù)源名稱標識數(shù)據(jù)源服務器,也即url模板中的服務器名稱。
可以結合數(shù)據(jù)源名稱以及待抓取的網(wǎng)絡數(shù)據(jù)所在頁面的頁面類型,來選擇基本配置信息,從而確定對應的url模板。
另外,由于網(wǎng)絡數(shù)據(jù)是由抓取服務器抓取得到,為了方便進行數(shù)據(jù)處理,可以從抓取服務器中獲取其抓取的網(wǎng)絡數(shù)據(jù)。
作為一種可能的實現(xiàn)方式,所述觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)可以包括:
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
也即抓取服務器將抓取的網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間,可以從網(wǎng)絡存儲空間中拉取所述網(wǎng)絡數(shù)據(jù)。
可選地,為了提高數(shù)據(jù)拉取效率,可以采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
為了避免壓力過大,可選地,所述進程數(shù)目可以不大于預設數(shù)目,該預設數(shù)目例如可以為20個。
此外,為了避免頻繁拉取,由于網(wǎng)絡存儲空間數(shù)據(jù)量過少導致每次拉取的數(shù)據(jù)量減少,可選地,可以每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
其中,該預設等待間隔可以根據(jù)抓取服務器的總抓取量、已抓取量、已耗費的抓取時間等計算獲得。
可選地,可以按照如下方式計算獲得:
總抓取時間=已耗費的抓取時間*(總抓取量/已抓取量);
剩余抓取時間=總抓取時間*(未抓取量/總抓取量),未抓取量等于總抓取量減去已抓取量;
預設等待間隔=10*sqrt(剩余抓取時間)。
作為又一種可能的實現(xiàn)方式,抓取服務器可以作為生產(chǎn)者,抓取的網(wǎng)絡數(shù)據(jù)存儲至kafka系統(tǒng)中,從而通過消費kafka系統(tǒng),以獲取網(wǎng)絡數(shù)據(jù)。
在某些實施例中,所述基于url模板對應的參數(shù)生成規(guī)則,確定更新參數(shù)可以包括:
響應于抓取任務的調(diào)度指令,生成所述抓取任務的當前抓取批次;
在所述當前抓取批次中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
在某些實施例中,由于可以預先配置不同url模板以及參數(shù)生成規(guī)則,通過建立不同url模板與參數(shù)生成規(guī)則的對應關系,即可以生成不同抓取任務。所述在所述當前抓取批次中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容可以是在所述當前抓取批次中,基于所述抓取任務中配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
抓取任務每被調(diào)度一次,即生成一個抓取批次。從而基于待抓取url抓取的網(wǎng)絡數(shù)據(jù)可以與當前抓取批次對應保存,以方便管理每一個抓取批次抓取獲得的網(wǎng)絡數(shù)據(jù)。
其中,該調(diào)度指令可以周期性生成,例如每天9點或者每間隔2個小時即生成該調(diào)度指令,通過響應該調(diào)度指令,即可以生成該抓取任務的一個抓取批次,從而在該抓取批次中,執(zhí)行一次抓取任務對應的數(shù)據(jù)抓取流程。
此外,由于可以設置多個抓取任務,任一抓取任務可以是在接收到用戶觸發(fā)請求或者依賴的抓取任務執(zhí)行結束時,通過響應于調(diào)度指令,生成一次抓取批次,以執(zhí)行所述任一抓取任務對應的數(shù)據(jù)抓取流程。
由于url模板以及參數(shù)生成規(guī)則可以針對任一數(shù)據(jù)源服務器配置獲得;本發(fā)明實施例在一個實際應用中,所述任一數(shù)據(jù)源服務器可以提供列表頁面以及信息頁面;頁面類型也即可以是指列表頁面或者信息頁面。
其中,每一列表頁面用于展示多個目標對象,所述多個目標對象屬于同一分組;每一信息頁面用于展示任一目標對象的內(nèi)容信息;每一列表頁面的url包括分組參數(shù),用于索引至對應的列表頁面,一個分組參數(shù)用于唯一標識一個分組;每一信息頁面的url包括標識參數(shù),用于索引至對應的信息頁面,一個標識參數(shù)唯一標識一個目標對象。
可選地,基于參數(shù)生成規(guī)則確定的更新內(nèi)容即可以包括該分組參數(shù)或者標識參數(shù)。
其中,目標對象可以是指服務提供方,每一信息頁面用于展示任一服務提供方提供的服務對象;每一個列表頁面中的多個服務提供方位于同一位置區(qū)域,所述分組參數(shù)具體為位置坐標參數(shù)。
例如,外賣應用場景中,服務提供方即為商戶,服務提供方提供的服務對象即為商品。數(shù)據(jù)源服務器為外賣服務器,其提供的列表頁口用于展示屬于同一位置區(qū)域的多個商戶,分組參數(shù)即可以位置坐標參數(shù)表示。信息頁面用于展示一個商戶的商品信息,標識參數(shù)可以采用商戶標識進行標識。
參數(shù)生成規(guī)則可以包括多個,在所述任一數(shù)據(jù)源服務器提供列表頁面以及信息頁面時,所述參數(shù)生成規(guī)則可以至少包括第一配置規(guī)則、第二配置規(guī)則以及第三配置規(guī)則;
第一配置規(guī)則以及第二配置規(guī)則可以用于生成標識參數(shù);第三配置規(guī)則可以用于生成分組參數(shù)。
如果待抓取的網(wǎng)絡數(shù)據(jù)為信息頁面的網(wǎng)絡數(shù)據(jù),即可以選擇信息頁面對應的url模板,以及該第一配置規(guī)則或者第二配置規(guī)則;
如果待抓取的網(wǎng)絡數(shù)據(jù)為列表頁面的網(wǎng)絡數(shù)據(jù),即可以選擇列表頁面對應的url模板以及該第三配置規(guī)則。
下面分別介紹第一配置規(guī)則、第二配置規(guī)則以及第三配置規(guī)則;
針對第一配置規(guī)則:
第一配置規(guī)則可以用于生成標識參數(shù),標識參數(shù)采用數(shù)字編號。
因此,如果所述參數(shù)生成規(guī)則為第一配置規(guī)則,可以具體獲取所述第一配置規(guī)則中預配置的基準參數(shù)以及遍歷范圍;
基于所述基準參數(shù)以及遍歷范圍,計算獲得標識參數(shù)。
由于實際應用中,標識參數(shù)通常采用數(shù)字編號,不同目標對象的數(shù)字編號組成連續(xù)的數(shù)字,據(jù)此可以設置第一配置規(guī)則,該第一配置規(guī)則即可以包括基準參數(shù)以及遍歷范圍;
該遍歷范圍可以包括向上遍歷范圍以及向下遍歷范圍,基于基準參數(shù)以及遍歷范圍,可以獲得標識參數(shù),即為[基準參數(shù)-向下遍歷范圍,基準參數(shù)+向上遍歷范圍]范圍內(nèi)的全部數(shù)字編號,實現(xiàn)了標識參數(shù)的批量生成。
該第一配置規(guī)則中還可以包括替換標識,從而將標識參數(shù)替換url模板中所述替換標識對應的替換內(nèi)容,即可以得到待抓取url,該待抓取url即用于獲取信息頁面中的網(wǎng)絡數(shù)據(jù)。
基于標識參數(shù)生成的待抓取url,即可以用戶抓取該標識參數(shù)標識的信息頁面的網(wǎng)絡數(shù)據(jù)。
此外,該第一配置規(guī)則中還可以配置有規(guī)則名稱,以方便進行規(guī)則識別。
針對第二配置規(guī)則:
如果所述參數(shù)生成規(guī)則為第二配置規(guī)則,可以具體是基于所述第二配置規(guī)則從已抓取的信息頁面對應的url數(shù)據(jù)庫中讀取標識參數(shù)。
由于實際應用中,數(shù)據(jù)抓取過程會一直進行,已抓取數(shù)據(jù)可以與其對應的標識參數(shù)或者分組參數(shù)對應存儲,據(jù)此可以配置第二配置規(guī)則。
該第二配置規(guī)則中可以包括數(shù)據(jù)庫信息、數(shù)據(jù)源名稱、替換標識以及標識選擇sql。以利用標識選擇sql從數(shù)據(jù)庫信息對應的url數(shù)據(jù)庫中該數(shù)據(jù)源名稱對應的數(shù)據(jù)中獲取該替換標識對應的標識參數(shù)。例如該標識選擇sql可以為:
selectshop_idfromdim_shop_allwheresource='waimai';
其中,替換標識用于用于標識參數(shù),shop_id即為替換標識、dim_shop為標識參數(shù)存儲的url數(shù)據(jù)庫,waimai為數(shù)據(jù)源名稱。從而獲得的標識參數(shù)可以替換url模板中的替換內(nèi)容為“@@shop_id@@”
基于標識參數(shù)生成的待抓取url,即可以用戶抓取該標識參數(shù)標識的信息頁面的網(wǎng)絡數(shù)據(jù)。
此外,該第二配置規(guī)則中還可以包括規(guī)則名稱等。
針對第三配置規(guī)則:
如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,則具體可以是基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)。
該參數(shù)數(shù)據(jù)庫中存儲大量的分組參數(shù),該參數(shù)數(shù)據(jù)庫中的分組參數(shù)可以預先配置或者根據(jù)已抓取的列表頁面獲取。
該第三配置規(guī)則中可以包括數(shù)據(jù)源名稱、數(shù)據(jù)庫信息、分組選擇sql等。具體可以是利用該分組選擇sql從數(shù)據(jù)庫信息對應的參數(shù)數(shù)據(jù)庫中該數(shù)據(jù)源名稱對應的數(shù)據(jù)中獲取分組參數(shù)。
該第三配置規(guī)則還可以包括規(guī)則名稱等。
由于第三配置規(guī)則用于生成分組參數(shù),而分組參數(shù)可以索引至列表頁面,但是列表頁面通常還具有翻頁頁面,需要進行翻頁才能獲得全部的網(wǎng)絡數(shù)據(jù)。
因此,作為又一個實施例,所述第三配置規(guī)則具體可以包括分組選擇規(guī)則以及翻頁配置規(guī)則;
如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)可以包括:
如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于分組選擇規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)以及基于翻頁配置規(guī)則確定翻頁參數(shù),所述翻頁參數(shù)用于索引至所述分組參數(shù)對應的列表頁面的翻頁頁面。
更新內(nèi)容也即包括所述分組參數(shù)以及所述翻頁參數(shù),第三配置規(guī)則中包括的替換標識即包括分組參數(shù)對應的分組標識以及翻頁參數(shù)對應的翻頁標識,從而可以利用分組參數(shù)替換url模板中分組標識對應的替換內(nèi)容,例如分組標識為“l(fā)at”,則url模板中的替換內(nèi)容可以為“@@lat@@”;利用翻頁參數(shù)替換url模板中翻頁標識對應的替換內(nèi)容,例如翻頁標識為“pn”,對應url模板中替換內(nèi)容可以為“@@lat@@”。
由于翻頁類型通常包括兩種:頁碼翻頁以及偏移量翻頁。
該翻頁配置規(guī)則中還可以包括翻頁類型、翻頁參數(shù)、每頁目標對象數(shù)量以及翻頁頁數(shù);
如果翻頁類型為頁碼翻頁,翻頁參數(shù)具體為頁碼參數(shù),其基于翻頁頁數(shù)確定,例如翻頁頁數(shù)為2,第一頁的頁碼參數(shù)為1,第二頁的頁碼參數(shù)為2,
如果翻頁類型為偏移量翻頁,翻頁參數(shù)具體為偏移量參數(shù),其基于每頁目標對象數(shù)量確定,例如每頁20個商戶,第一頁的偏移量是0,第二頁的偏移量是20,第三頁的偏移量是40。
其中,可選地,基于翻頁配置規(guī)則還可以確定每頁目標對象數(shù)量
也即所述更新內(nèi)容還可以包括每頁目標對象數(shù)量,基于該更新內(nèi)容生成的待抓取url,即可以用于按照每頁目標對象數(shù)量,從抓取列表頁面以及列表頁面的翻頁頁面抓取網(wǎng)絡數(shù)據(jù)。
此外,作為又一個實施例,該參數(shù)生成規(guī)則可以包括通用配置規(guī)則,該通用配置規(guī)則中包括所述更新內(nèi)容,還可以包括替換標識。
如果所述參數(shù)生成規(guī)則為所述通用配置規(guī)則,則可以具體是確定所述通用配置規(guī)則中配置的所述更新內(nèi)容。
該更新內(nèi)容即可以替換url模板中所述替換標識對應的替換內(nèi)容。
圖3為本發(fā)明實施例提供的一種數(shù)據(jù)抓取裝置一個實施例的結構示意圖,該裝置可以包括:
確定模塊301,用于基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
可選地,該url模板以及該參數(shù)生成規(guī)則可以是針對任一數(shù)據(jù)源服務器配置獲得;
所述確定模塊可以具體用于確定針對所述任一數(shù)據(jù)源服務器預配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則;基于所述參數(shù)生成規(guī)則,確定更新內(nèi)容。
根據(jù)任一數(shù)據(jù)源服務提供的頁面類型,可以預配置多個url模板。
參數(shù)生產(chǎn)規(guī)則可以包括多個,可以用于確定不同更新內(nèi)容;此外用于確定同一更新內(nèi)容的參數(shù)生產(chǎn)規(guī)則也可以包括多個??蛇x地,url模板對應的參數(shù)生成規(guī)則可以是基于用戶選擇操作確定的。
生成模塊302,用于利用所述更新內(nèi)容更新所述url模板,生成待抓取url。
可選地,參數(shù)生成規(guī)則中可以包括替換標識,該生成模塊可以具體用于:
利用所述更新內(nèi)容替換所述url模板中所述替換標識對應的替換內(nèi)容,生成待抓取url。
推送模塊303,用于推送所述待抓取url至抓取服務器;
抓取觸發(fā)模塊304,用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
本實施例中,抓取服務器根據(jù)待抓取url即可以進行網(wǎng)絡數(shù)據(jù)的抓取,僅抓取待抓取url對應的網(wǎng)絡數(shù)據(jù),而不會任意爬取,使得抓取的網(wǎng)絡數(shù)據(jù)均為有效信息,提高了抓取準確度。且待抓取url可以根據(jù)參數(shù)生成規(guī)則,基于預配置的url模板自動生成,無需人工編寫提供,可以生成批量的待抓取url,實現(xiàn)網(wǎng)絡數(shù)據(jù)的批量抓取,從而降低了抓取的開發(fā)成本,提高了抓取效率。
可選地,確定得到的更新內(nèi)容可以包括多個,利用所述更新內(nèi)容生成的待抓取url也即可以包括多個,為了防止抓取服務器壓力過大,同時為了保證數(shù)據(jù)抓取速度,作為又一個實施例,如圖4中所示,其與圖3對應實施例不同之處在于,所述推送模塊303可以包括:
推送單元401,用于推送一批第一數(shù)量的待抓取url至所述抓取服務器;
第一判斷單元402,用于針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
其中,第一數(shù)量大于第二數(shù)量。
也即將待抓取url分批推送至抓取服務器,每一批包括第一數(shù)量的待抓取url。
且由于抓取服務器進行數(shù)據(jù)抓取時會存在長尾效應,也即抓取一定數(shù)量的url之后會間隔一定時間,因此無需等待抓取服務器抓取完成一批url再推送下一批。
此外,為了避免長尾效應中抓取服務器等待時間過長而影響抓取速度,可選地,如圖4中所述,所述推送模塊303還可以包括:
第二判斷單元403,用于針對所述當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
可選地,如果抓取等待時長超過預設時長,即便針對當前一批第一數(shù)量的待抓取url,抓取服務器未處理完成第二數(shù)量的待抓取url,也可以立即推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
在某些實施例中,根據(jù)任一數(shù)據(jù)源服務提供的頁面類型,可以預配置多個url模板,為了方便用戶了解抓取操作,在某些實施例中,該裝置還可以包括:
輸出模塊,用于輸出不同數(shù)據(jù)源服務器對應的基本配置信息;所述基本配置信息包括url模板、數(shù)據(jù)源名稱、頁面類型以及請求類型;
所述確定模塊確定針對所述任一數(shù)據(jù)源服務器預配置的url模板具體用于響應于針對所述任一數(shù)據(jù)源服務器的基本配置信息的用戶選擇操作,確定選擇的url模板。
其中,請求類型可以包括post請求或者get請求,頁面類型為待抓取的網(wǎng)絡數(shù)據(jù)所在頁面的頁面類型。數(shù)據(jù)源名稱標識數(shù)據(jù)源服務器,也即url模板中的服務器名稱。
可以結合數(shù)據(jù)源名稱以及待抓取的網(wǎng)絡數(shù)據(jù)所在頁面的頁面類型,來選擇基本配置信息,從而確定對應的url模板。
在某些實施例中,由于網(wǎng)絡數(shù)據(jù)是由抓取服務器抓取得到,為了方便進行數(shù)據(jù)處理,可以從抓取服務器中獲取其抓取的網(wǎng)絡數(shù)據(jù)。
因此所述抓取觸摸模塊具體用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
所述裝置還可以包括:
數(shù)據(jù)獲取模塊,用于從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
可選地,為了提高數(shù)據(jù)拉取效率,可以采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
此外,為了避免頻繁拉取,由于網(wǎng)絡存儲空間數(shù)據(jù)量過少導致每次拉取的數(shù)據(jù)量減少,可選地,所述數(shù)據(jù)獲取模塊可以具體用于每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
其中,該預設等待間隔可以根據(jù)抓取服務器的總抓取量、已抓取量、已耗費的抓取時間等計算獲得。
可選地,可以按照如下方式計算獲得:
總抓取時間=已耗費的抓取時間*(總抓取量/已抓取量);
剩余抓取時間=總抓取時間*(未抓取量/總抓取量),未抓取量等于總抓取量減去已抓取量;
預設等待間隔=10*sqrt(剩余抓取時間)。
在某些實施例中,所述抓取觸發(fā)模塊可以具體用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至kafka系統(tǒng);
因此,該數(shù)據(jù)抓取裝置具體通過消費kafka系統(tǒng),以獲取網(wǎng)絡數(shù)據(jù)。
在某些實施例中,所述確定模塊可以具體用于:響應于抓取任務的調(diào)度指令,生成所述抓取任務的當前抓取批次;
在所述當前抓取批次中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
在某些實施例中,由于可以預先配置不同url模板以及參數(shù)生成規(guī)則,通過建立不同url模板與參數(shù)生成規(guī)則的對應關系,即可以生成不同抓取任務。抓取任務每被調(diào)度一次即生成一個抓取批次,從而基于待抓取url抓取的網(wǎng)絡數(shù)據(jù)可以與當前抓取批次對應保存,以方便管理每一個抓取批次抓取獲得的網(wǎng)絡數(shù)據(jù)。。
因此,所述確定模塊可以具體是在所述當前抓取批次中,基于所述抓取任務中配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容。
其中,該抓取調(diào)度指令可以周期性生成;
此外,由于可以設置多個抓取任務,任一抓取任務可以是在接收到用戶觸發(fā)請求或者依賴的抓取任務執(zhí)行結束時,通過響應于調(diào)度指令,生成一次抓取批次,以執(zhí)行所述任一抓取任務對應的數(shù)據(jù)抓取流程。
由于url模板以及參數(shù)生成規(guī)則可以針對任一數(shù)據(jù)源服務器配置獲得;本發(fā)明實施例在一個實際應用中,所述任一數(shù)據(jù)源服務器具有列表頁面以及信息頁面;每一列表頁面用于展示多個目標對象,所述多個目標對象屬于同一分組;每一信息頁面用于展示任一目標對象的內(nèi)容信息;每一列表頁面的url包括分組參數(shù),用于索引至對應的列表頁面,一個分組參數(shù)用于唯一標識一個分組;每一信息頁面的url包括標識參數(shù),用于索引至對應的信息頁面,一個標識參數(shù)唯一標識一個目標對象;
所述更新內(nèi)容包括所述分組參數(shù)或所述標識參數(shù)。
其中,目標對象可以是指服務提供方,每一信息頁面用于展示任一服務提供方提供的服務對象;每一個列表頁面中的多個服務提供方位于同一位置區(qū)域,所述分組參數(shù)具體為位置坐標參數(shù)。
其中,參數(shù)生成規(guī)則可以包括多個,在所述任一數(shù)據(jù)源服務器提供列表頁面以及信息頁面時,所述參數(shù)生成規(guī)則可以至少包括第一配置規(guī)則、第二配置規(guī)則以及第三配置規(guī)則。
在實際應用中,標識參數(shù)通常采用數(shù)字編號。
因此,所述確定模塊可以具體用于所述確定模塊具體用于如果所述參數(shù)生成規(guī)則為第一配置規(guī)則,獲取所述第一配置規(guī)則中預配置的基準參數(shù)以及遍歷范圍;基于所述基準參數(shù)以及遍歷范圍,計算獲得標識參數(shù);如果所述參數(shù)生成規(guī)則為第二配置規(guī)則,基于所述第二配置規(guī)則從已抓取的信息頁面對應的url數(shù)據(jù)庫中讀取標識參數(shù);如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)。
此外,由于列表頁面通常還具有翻頁頁面,需要進行翻頁才能獲得全部的網(wǎng)絡數(shù)據(jù)。因此,在某些實施例中,所述第三配置規(guī)則包括分組選擇規(guī)則以及翻頁配置規(guī)則;
所述確定模塊如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)具體是如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于分組選擇規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)以及基于翻頁配置規(guī)則確定翻頁參數(shù),所述翻頁參數(shù)用于索引至所述分組參數(shù)對應的列表頁面的翻頁頁面。
更新內(nèi)容即包括所述分組參數(shù)以及所述翻頁參數(shù)。第三配置規(guī)則中包括的替換標識即包括分組參數(shù)對應的分組標識以及翻頁參數(shù)對應的翻頁標識,從而可以利用分組參數(shù)替換url模板中分組標識對應的替換內(nèi)容。
由于翻頁類型通常包括兩種:頁碼翻頁以及偏移量翻頁。
該翻頁配置規(guī)則中還可以包括翻頁類型、翻頁參數(shù)、每頁目標對象數(shù)量以及翻頁頁數(shù);
如果翻頁類型為頁碼翻頁,翻頁參數(shù)具體為頁碼參數(shù),其基于翻頁頁數(shù)確定,例如翻頁頁數(shù)為2,第一頁的頁碼參數(shù)為1,第二頁的頁碼參數(shù)為2,
如果翻頁類型為偏移量翻頁,翻頁參數(shù)具體為偏移量參數(shù),其基于每頁目標對象數(shù)量確定,例如每頁20個商戶,第一頁的偏移量是0,第二頁的偏移量是20,第三頁的偏移量是40。
其中,可選地,所述確定模塊還可以用于基于翻頁配置規(guī)則確定每頁目標對象數(shù)量
也即所述更新內(nèi)容還可以包括每頁目標對象數(shù)量,基于該更新內(nèi)容生成的待抓取url,即可以用于按照每頁目標對象數(shù)量,從抓取列表頁面以及列表頁面的翻頁頁面抓取網(wǎng)絡數(shù)據(jù)。
此外,作為又一個實施例,該參數(shù)生成規(guī)則可以包括通用配置規(guī)則,該通用配置規(guī)則中包括所述更新內(nèi)容,還可以包括替換標識。
如果所述參數(shù)生成規(guī)則為所述通用配置規(guī)則,則可以具體是確定所述通用配置規(guī)則中配置的所述更新內(nèi)容。
該更新內(nèi)容即可以替換url模板中所述替換標識對應的替換內(nèi)容。
在一個可能的設計中,上述任一實施例所述的數(shù)據(jù)抓取裝置可以實現(xiàn)為電子裝置。如圖5所示,該電子裝置可以包括一個或多個處理器501以及一個或多個存儲器502。
所述一個或多個存儲器502存儲一條或多條計算機指令,其中,所述一條或多條計算機指令供所述一個或多個處理器501調(diào)用執(zhí)行。
所述一個或多個處理器501用于:
基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送所述待抓取url至抓取服務器;
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
可選地,所述一個或多個處理器還用于執(zhí)行上述任一實施例所述的數(shù)據(jù)抓取方法。
此外,本發(fā)明實施例還提供了一種計算機可讀存儲介質(zhì),存儲有計算機程序,所述計算機程序使計算機執(zhí)行時實現(xiàn)上述任一實施例所述的數(shù)據(jù)抓取方法。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件?;谶@樣的理解,上述技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍
本發(fā)明公開了a1、一種數(shù)據(jù)抓取方法,包括:
基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送所述待抓取url至抓取服務器;
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
a2、根據(jù)a1所述的方法,所述推送所述待抓取url至抓取服務器包括:
推送一批第一數(shù)量的待抓取url至所述抓取服務器;
針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
a3、根據(jù)a2所述的方法,所述方法還包括:
針對所述當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
a4、根據(jù)a1所述的方法,所述觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)包括:
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
所述方法還包括:
從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
a5、根據(jù)a4所述的方法,所述從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)包括:
每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
a6、根據(jù)a1所述的方法,所述url模板以及所述參數(shù)生成規(guī)則針對任一數(shù)據(jù)源服務器配置獲得;
所述基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容包括:
確定針對所述任一數(shù)據(jù)源服務器預配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則;
基于所述參數(shù)生成規(guī)則,確定更新內(nèi)容。
a7、根據(jù)a6所述的方法,所述任一數(shù)據(jù)源服務器具有列表頁面以及信息頁面;每一列表頁面用于展示多個目標對象,所述多個目標對象屬于同一分組;每一信息頁面用于展示任一目標對象的內(nèi)容信息;每一列表頁面的url包括分組參數(shù),用于索引至對應的列表頁面,一個分組參數(shù)用于唯一標識一個分組;每一信息頁面的url包括標識參數(shù),用于索引至對應的信息頁面,一個標識參數(shù)唯一標識一個目標對象;
所述更新內(nèi)容包括所述分組參數(shù)或所述標識參數(shù)。
a8、根據(jù)a7所述的方法,所述標識參數(shù)采用數(shù)字編號;
所述更新內(nèi)容確定步驟包括:
如果所述參數(shù)生成規(guī)則為第一配置規(guī)則,獲取所述第一配置規(guī)則中預配置的基準參數(shù)以及遍歷范圍;
基于所述基準參數(shù)以及遍歷范圍,計算獲得標識參數(shù);
如果所述參數(shù)生成規(guī)則為第二配置規(guī)則,基于所述第二配置規(guī)則從已抓取的信息頁面對應的url數(shù)據(jù)庫中讀取標識參數(shù);
如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)。
a9、根據(jù)a8所述的方法,所述第三配置規(guī)則包括分組選擇規(guī)則以及翻頁配置規(guī)則;
所述如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)包括:
如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于分組選擇規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)以及基于翻頁配置規(guī)則確定翻頁參數(shù),所述翻頁參數(shù)用于索引至所述分組參數(shù)對應的列表頁面的翻頁頁面;所更新內(nèi)容包括所述分組參數(shù)以及所述翻頁參數(shù)。
a10、根據(jù)a7所述的方法,所述目標對象為服務提供方,每一信息頁面用于展示任一服務提供方提供的服務對象;
每一個列表頁面中的多個服務提供方位于同一位置區(qū)域,所述分組參數(shù)具體為位置坐標參數(shù)。
a11、根據(jù)a1所述的方法,所述參數(shù)生成規(guī)則中包括替換標識;
所述利用所述更新參數(shù)更新url模板,生成待抓取url包括:
利用所述更新內(nèi)容替換所述url模板中所述替換標識對應的替換內(nèi)容,生成待抓取url。
a12、根據(jù)a6所述的方法,還包括:
輸出不同數(shù)據(jù)源服務器對應的基本配置信息;所述基本配置信息包括url模板、數(shù)據(jù)源名稱、頁面類型以及請求類型;
所述確定針對所述任一數(shù)據(jù)源服務器預配置的url模板包括:
響應于針對所述任一數(shù)據(jù)源服務器的基本配置信息的用戶選擇操作,確定選擇的url模板。
a13、根據(jù)a1所述的方法,所述基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容包括:
響應于抓取任務的調(diào)度指令,生成所述抓取任務的當前抓取批次;
在所述當前抓取批次中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;其中,所述網(wǎng)絡數(shù)據(jù)對應所述當前抓取批次保存。
b14、一種數(shù)據(jù)抓取裝置,包括:
確定模塊,用于基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
生成模塊,用于利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送模塊,用于推送所述待抓取url至抓取服務器;
抓取觸發(fā)模塊,用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
b15、根據(jù)b14所述的裝置,所述推送模塊包括:
推送單元,用于推送一批第一數(shù)量的待抓取url至所述抓取服務器;
第一判斷單元,用于針對當前一批第一數(shù)量的待抓取url,如果所述抓取服務器處理完成第二數(shù)量的待抓取url,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
b16、根據(jù)b15所述的裝置,所述推送模塊還包括:
第二判斷單元,用于針對所述當前一批第一數(shù)量的待抓取url,如果所述抓取服務器的抓取等待時長超過預設時長,觸發(fā)所述推送單元推送下一批第一數(shù)量的待抓取url至所述抓取服務器。
b17、根據(jù)b14所述的裝置,所述抓取觸摸模塊具體用于觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù),并將所述網(wǎng)絡數(shù)據(jù)存儲至網(wǎng)絡存儲空間;
所述裝置還包括:
數(shù)據(jù)獲取模塊,用于從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
b18、根據(jù)b17所述的裝置,所述數(shù)據(jù)獲取模塊具體用于每間隔預設等待間隔,采用多進程方式從所述網(wǎng)絡存儲空間獲取所述網(wǎng)絡數(shù)據(jù)。
b19、根據(jù)b14所述的裝置,所述url模板以及所述參數(shù)生成規(guī)則針對任一數(shù)據(jù)源服務器配置獲得;
所述確定模塊具體用于確定針對所述任一數(shù)據(jù)源服務器預配置的url模板以及所述url模板對應的參數(shù)生成規(guī)則;基于所述參數(shù)生成規(guī)則,確定更新內(nèi)容。
b20、根據(jù)b19所述的裝置,所述任一數(shù)據(jù)源服務器具有列表頁面以及信息頁面;每一列表頁面用于展示多個目標對象,所述多個目標對象屬于同一分組;每一信息頁面用于展示任一目標對象的內(nèi)容信息;每一列表頁面的url包括分組參數(shù),用于索引至對應的列表頁面,一個分組參數(shù)用于唯一標識一個分組;每一信息頁面的url包括標識參數(shù),用于索引至對應的信息頁面,一個標識參數(shù)唯一標識一個目標對象;
所述更新內(nèi)容包括所述分組參數(shù)或所述標識參數(shù)。
b21、根據(jù)b20所述的裝置,所述標識參數(shù)采用數(shù)字編號;
所述確定模塊具體用于如果所述參數(shù)生成規(guī)則為第一配置規(guī)則,獲取所述第一配置規(guī)則中預配置的基準參數(shù)以及遍歷范圍;基于所述基準參數(shù)以及遍歷范圍,計算獲得標識參數(shù);如果所述參數(shù)生成規(guī)則為第二配置規(guī)則,基于所述第二配置規(guī)則從已抓取的信息頁面對應的url數(shù)據(jù)庫中讀取標識參數(shù);如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)。
b22、根據(jù)b21所述的裝置,所述第三配置規(guī)則包括分組選擇規(guī)則以及翻頁配置規(guī)則;
所述確定模塊如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于所述第三配置規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)具體是如果所述參數(shù)生成規(guī)則為第三配置規(guī)則,基于分組選擇規(guī)則從參數(shù)數(shù)據(jù)庫中讀取分組參數(shù)以及基于翻頁配置規(guī)則確定翻頁參數(shù),所述翻頁參數(shù)用于索引至所述分組參數(shù)對應的列表頁面的翻頁頁面。
b23、根據(jù)b20所述的裝置,所述目標對象為服務提供方,每一信息頁面用于展示任一服務提供方提供的服務對象;
每一個列表頁面中的多個服務提供方位于同一位置區(qū)域,所述分組參數(shù)具體為位置坐標參數(shù)。
b24、根據(jù)b14所述的裝置,所述參數(shù)生成規(guī)則中包括替換標識;
所述生成模塊具體用于利用所述更新內(nèi)容替換所述url模板中所述替換標識對應的替換內(nèi)容,生成待抓取url。
b25、根據(jù)b19所述的裝置,還包括:
輸出模塊,用于輸出不同數(shù)據(jù)源服務器對應的基本配置信息;所述基本配置信息包括url模板、數(shù)據(jù)源名稱、頁面類型以及請求類型;
所述確定模塊確定針對所述任一數(shù)據(jù)源服務器預配置的url模板具體用于響應于針對所述任一數(shù)據(jù)源服務器的基本配置信息的用戶選擇操作,確定選擇的url模板。
b26、根據(jù)b14所述的裝置,所述確定模塊具體用于響應于抓取任務的調(diào)度指令,生成所述抓取任務的當前抓取批次;在所述當前抓取批次中,基于url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;其中,所述網(wǎng)絡數(shù)據(jù)對應所述當前抓取批次保存。
b27、一種電子裝置,包括一個或多個處理器以及一個或多個存儲器;
所述一個或多個存儲器一條或多條計算機指令,其中,所述一條或多條計算機指令供所述一個或多個處理器調(diào)用執(zhí)行。
所述一個或多個處理器用于:
基于統(tǒng)一資源定位符url模板對應的參數(shù)生成規(guī)則,確定更新內(nèi)容;
利用所述更新內(nèi)容更新所述url模板,生成待抓取url;
推送所述待抓取url至抓取服務器;
觸發(fā)所述抓取服務器抓取所述待抓取url對應的網(wǎng)絡數(shù)據(jù)。
b28、一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機程序;
所述計算機程序使計算機執(zhí)行時實現(xiàn)如a1~a13任一項所述的數(shù)據(jù)抓取方法。