本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù):
近年來,隨著網(wǎng)絡(luò)信息爆炸式的增長,如何有效的在網(wǎng)絡(luò)中獲取有用的信息已變得極其困難。目前,爬蟲技術(shù)在豐富公司數(shù)據(jù)、獲取多元數(shù)據(jù)中扮演著重要的作用。同時爬蟲技術(shù)也是數(shù)據(jù)挖掘中不可缺少的工具。
目前,市面上的爬蟲工具較多,例如:scrapy、larbin、heritrix等等。其中,scrapy是一個web(網(wǎng)頁)抓取框架,提供了多種類型爬蟲的基類,可以抓取web站點(diǎn),并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。larbin是一個開源的網(wǎng)絡(luò)爬蟲工具,能夠記錄web頁面的url(uniformresourcelocator,統(tǒng)一資源定位符)并進(jìn)行抓取,保存原始網(wǎng)頁,可作為通用搜索引擎的信息來源。heritrix是一個開源、可拓展的web爬蟲,以遞歸的方式對web頁面進(jìn)行深度優(yōu)先遍歷。
上述各爬蟲工具都是供開發(fā)人員使用的爬蟲框架。專業(yè)的開發(fā)人員需對爬蟲框架進(jìn)行二次開發(fā),以得到能夠從目標(biāo)web站點(diǎn)獲取到所需數(shù)據(jù)的爬蟲軟件;然后執(zhí)行該爬蟲軟件以獲取所需的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
現(xiàn)有,爬蟲框架為使用者提供了一些api(applicationprograminterface,應(yīng)用程序接口)。使用者可根據(jù)這些api,對爬蟲框架進(jìn)行二次開發(fā),以得到能夠從目標(biāo)web站點(diǎn)獲取到所需數(shù)據(jù)的爬蟲軟件。對于企業(yè)中專注于業(yè)務(wù)的數(shù)據(jù)分析人員來說,學(xué)習(xí)編碼的成本太高,且使用起來比較困難。另外,二次開發(fā)人員需針對不同的獲取需求設(shè)計和編寫不同的爬蟲軟件,開發(fā)成本高,且使用不夠便捷。因此,需要提供一種開發(fā)難度低、使用更加便捷的技術(shù)方案。
于是,在本發(fā)明的一個實(shí)施例中,提供了一種數(shù)據(jù)處理方法。該方法包括:獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息;根據(jù)所述配置信息,生成配置文件;從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。本實(shí)施例提供的技術(shù)方案通過獲取到的配置信息生成相應(yīng)的配置文件,在進(jìn)行網(wǎng)絡(luò)側(cè)數(shù)據(jù)獲取過程中即以該配置文件的方式遍歷網(wǎng)頁,進(jìn)而從網(wǎng)絡(luò)中獲取到所需的數(shù)據(jù),簡化了爬蟲類工具的二次開發(fā)難度,使用起來更加便捷。
可選的,上述的方法中,所述從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁,包括:從數(shù)據(jù)任務(wù)隊列中,獲取任務(wù)調(diào)度系統(tǒng)分配的所述數(shù)據(jù)任務(wù);從代理池中選出一個目標(biāo)代理,以通過所述目標(biāo)代理向所述數(shù)據(jù)任務(wù)指定的站點(diǎn)發(fā)送請求;接收所述目標(biāo)代理反饋的所述目標(biāo)網(wǎng)頁。代理池中提供了大量的代理ip(代理服務(wù)器),當(dāng)目標(biāo)代理發(fā)生代理失敗(即反饋錯誤信息)時,能從代理池中選擇其他代理以重新獲取目標(biāo)網(wǎng)頁,避免出現(xiàn)無法獲取目標(biāo)網(wǎng)頁的情況出現(xiàn)。
可選的,上述從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁還包括:若所述目標(biāo)代理反饋的是錯誤信息,則從所述代理池中重新選擇一個代理作為所述目標(biāo)代理。
可選的,上述的方法還可包括:若所述目標(biāo)代理反饋的是錯誤信息,則將所述目標(biāo)代理的代理標(biāo)識位加預(yù)設(shè)值;若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值大于閾值,則將所述目標(biāo)代理從所述代理池中移除;若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值小于閾值,則將所述目標(biāo)代理移動到所述代理池的隊列隊尾。采用上述方式對代理池進(jìn)行維護(hù),可使得代理池中的代理ip都充分可用,有助于提高目標(biāo)網(wǎng)頁的獲取效率。
可選的,上述的方法還可包括:若所述數(shù)據(jù)任務(wù)被中斷,則將中斷時剩余未完成的任務(wù)記為新任務(wù);將所述新任務(wù)添加到所述數(shù)據(jù)任務(wù)隊列中。因?yàn)閿?shù)據(jù)任務(wù)隊列中保存有上次未處理完成的任務(wù),后續(xù)調(diào)度時會繼續(xù)從數(shù)據(jù)任務(wù)隊列中分配任務(wù)給相應(yīng)的數(shù)據(jù)獲取節(jié)點(diǎn),所以不會出現(xiàn)重復(fù)處理的情況。
可選的,上述獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息,包括:展現(xiàn)配置界面;獲取所述配置界面上輸入的有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的所述配置信息。為爬蟲類軟件(亦或數(shù)據(jù)爬蟲程序)提供二次開發(fā)配置界面,二次開發(fā)人員或非程序開發(fā)人員只需通過配置界面上的提示輸入需求信息即可完成配置文件的設(shè)置,整體降低了數(shù)據(jù)爬取工具的二次開發(fā)的難度,使用起來更加便捷。
可選的,所述配置信息可包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種;相應(yīng)的,上述的根據(jù)所述配置信息,生成配置文件,包括:根據(jù)所述數(shù)據(jù)位置定位規(guī)則信息,生成數(shù)據(jù)解析配置子文件;和/或根據(jù)所述數(shù)據(jù)輸出格式信息,生成數(shù)據(jù)輸出格式配置子文件;和/或根據(jù)所述清洗規(guī)則信息,生成數(shù)據(jù)清洗配置子文件。
可選的,所述配置文件包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件;以及所述基于所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù),包括:基于所述數(shù)據(jù)解析配置子文件,在所述目標(biāo)網(wǎng)頁中定位出欲抓取數(shù)據(jù)的位置;從所述目標(biāo)網(wǎng)頁中解析出所述位置處的數(shù)據(jù),得到第一數(shù)據(jù);將所述第一數(shù)據(jù)的格式轉(zhuǎn)換為所述數(shù)據(jù)輸出格式配置子文件指定的數(shù)據(jù)輸出格式,得到第二數(shù)據(jù);根據(jù)所述數(shù)據(jù)清洗配置子文件,對所述第二數(shù)據(jù)進(jìn)行清洗得到所述需求數(shù)據(jù)。
在本發(fā)明的另一實(shí)施例中,提供了一種數(shù)據(jù)處理裝置。該裝置包括:第一獲取模塊,用于獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息;生成模塊,用于根據(jù)所述配置信息生成配置文件;第二獲取模塊,用于從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
在一種可能的設(shè)計中,數(shù)據(jù)處理裝置的結(jié)構(gòu)中包含處理器和存儲器,所述存儲器用于存儲支持所述數(shù)據(jù)處理裝置執(zhí)行上述數(shù)據(jù)處理方法的程序,所述處理器被配置為用于執(zhí)行所述存儲器中存儲的程序。所述數(shù)據(jù)處理裝置還可以包括通訊接口,用于實(shí)現(xiàn)所述數(shù)據(jù)處理裝置與其他設(shè)備或通信網(wǎng)絡(luò)通信。
在本發(fā)明的又一實(shí)施例中,提供了一種計算機(jī)存儲介質(zhì),用于存儲數(shù)據(jù)處理裝置所用的計算機(jī)軟件指令,其包含于執(zhí)行上述數(shù)據(jù)處理方法為數(shù)據(jù)處理裝置所涉及的程序。
本發(fā)明實(shí)施例提供的技術(shù)方案,在獲取到配置信息后,即可根據(jù)配置信息生成相應(yīng)的配置文件,在進(jìn)行網(wǎng)絡(luò)側(cè)數(shù)據(jù)爬取過程中以該配置文件的方式遍歷網(wǎng)頁并從該網(wǎng)頁中獲取到所需的數(shù)據(jù),降低了數(shù)據(jù)爬取工具的二次開發(fā)難度,使用起來更加便捷。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實(shí)施例提供的數(shù)據(jù)處理方法的流程示意圖;
圖2為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)處理方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)分布式功能的架構(gòu)圖;
圖4為本發(fā)明實(shí)施例提供的代理池維護(hù)原理圖;
圖5為本發(fā)明一實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖6為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖;
圖7為本發(fā)明又一實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
在本發(fā)明的說明書、權(quán)利要求書及上述附圖中描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行。操作的序號如101、102等,僅僅是用于區(qū)分各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明一實(shí)施例提供的數(shù)據(jù)處理方法的流程示意圖。如圖1所示,該方法包括:
101、獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息。
102、根據(jù)所述配置信息,生成配置文件。
103、從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁。
104、根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
上述101中,所述配置信息可通過用戶界面輸入獲得。例如,為用戶展示配置界面,該配置界面中包含有至少一個空格和/或選項(xiàng)。用戶可在空格中填入相應(yīng)的信息,和/或從選項(xiàng)中選出至少一個目標(biāo)選項(xiàng),作為所述配置信息?;蛘?,所述配置信息可從配置信息庫中獲得。例如,預(yù)先設(shè)置了一些配置信息,并將其存儲在數(shù)據(jù)庫中;需要時可根據(jù)目標(biāo)網(wǎng)絡(luò)站點(diǎn)的網(wǎng)頁特點(diǎn)從存儲設(shè)備中調(diào)取相應(yīng)的配置信息即可。又例如,分別為多個目標(biāo)網(wǎng)絡(luò)站點(diǎn)設(shè)置對應(yīng)的配置信息,需要時可通過目標(biāo)網(wǎng)站的網(wǎng)站標(biāo)識(例如網(wǎng)站名稱)從數(shù)據(jù)庫中獲取對應(yīng)的配置信息。
在一種可實(shí)現(xiàn)的方案中,所述配置信息可包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種。其中,所述數(shù)據(jù)位置定位規(guī)則信息可根據(jù)欲獲取網(wǎng)絡(luò)web站點(diǎn)的頁面跳轉(zhuǎn)規(guī)則,以及欲獲取數(shù)據(jù)在web頁面的位置等來確定。不同的web站點(diǎn),其對應(yīng)的數(shù)據(jù)位置定位規(guī)則也會有所不同。在具體實(shí)施時,可通過xpath(xml(可擴(kuò)展標(biāo)記語言)路徑語言)、csspath(層疊樣式表路徑語言,css是一種用來表現(xiàn)html(標(biāo)準(zhǔn)通用標(biāo)記語言的一個應(yīng)用)或xml(標(biāo)準(zhǔn)通用標(biāo)記語言的一個子集)等文件樣式的計算機(jī)語言)等方式來定位數(shù)據(jù)位置,或者使用phantomjsdriver(其為一種瀏覽器內(nèi)核,具有html、js等解析能力,但是沒有圖形用戶接口gui的瀏覽器程序)。該phantomjsdriver對于js動態(tài)加載的網(wǎng)頁有很好的解析效果。所述數(shù)據(jù)輸出格式信息可自定義設(shè)置,本發(fā)明實(shí)施例對設(shè)定的數(shù)據(jù)輸出格式不作具體限定。數(shù)據(jù)清洗規(guī)則可包括如下中的一種或多種操作:
對空數(shù)據(jù)、缺失數(shù)據(jù)進(jìn)行數(shù)據(jù)不缺操作;
對無效的數(shù)據(jù)進(jìn)行數(shù)據(jù)的替換;
將目標(biāo)網(wǎng)頁抽取的數(shù)據(jù)格式轉(zhuǎn)換成為需求數(shù)據(jù)格式;
數(shù)據(jù)合并,去除重復(fù)記錄;
數(shù)據(jù)拆分;
為獲取到的數(shù)據(jù)添加時間戳的處理;
將錯誤信息單獨(dú)輸出,對錯誤數(shù)據(jù)修改;等等。
簡言之,可以將數(shù)據(jù)清洗的過程看成是一個工作流,每個步驟之間存在著先后的順序。例如,數(shù)據(jù)清洗規(guī)則執(zhí)行的通常步驟順序?yàn)椋篴、檢查錯誤;b去掉重復(fù)的記錄;c補(bǔ)上不完全的記錄;d解決不一致的記錄;e用測試查詢來驗(yàn)證數(shù)據(jù);等等。
上述102中,生成配置文件的目的是:在執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)獲取過程時方便調(diào)取該配置文件,以實(shí)現(xiàn)從網(wǎng)絡(luò)側(cè)獲取到符合配置文件要求的數(shù)據(jù)。在一種可實(shí)現(xiàn)的方案中,所述配置信息可包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種。相應(yīng)的,上述102可具體包括如下步驟:
根據(jù)所述數(shù)據(jù)位置定位規(guī)則信息,生成數(shù)據(jù)解析配置子文件;和/或
根據(jù)所述數(shù)據(jù)輸出格式信息,生成數(shù)據(jù)輸出格式配置子文件;和/或
根據(jù)所述清洗規(guī)則信息,生成數(shù)據(jù)清洗配置子文件。
在具體實(shí)施時,所述數(shù)據(jù)解析配置子文件可包含有多個解析程序(例如正則表達(dá)式);所述數(shù)據(jù)輸出格式配置子文件實(shí)質(zhì)上就是一些數(shù)據(jù)格式轉(zhuǎn)換過程;所述數(shù)據(jù)清洗配置子文件就是將一些所需的數(shù)據(jù)摘出來,并將一些需要修補(bǔ)的數(shù)據(jù)進(jìn)行修補(bǔ),一些干擾數(shù)據(jù)進(jìn)行去除等等。當(dāng)所述配置文件包含有上述各子文件中的兩種或三種時,可預(yù)先對這三種配置子文件的調(diào)取順序進(jìn)行設(shè)定。例如,先調(diào)取數(shù)據(jù)解析配置子文件,將所需的數(shù)據(jù)從爬取到的網(wǎng)頁中解析出來;然后,再調(diào)取數(shù)據(jù)輸出格式配置子文件,以將解析出的數(shù)據(jù)統(tǒng)一轉(zhuǎn)換為指定的格式輸出;最后,對具有統(tǒng)一格式的數(shù)據(jù)進(jìn)行清洗,以得到有用的數(shù)據(jù),去除干擾數(shù)據(jù)。當(dāng)然,上述的調(diào)取順序僅是一個示例,本發(fā)明實(shí)施例對此不作具體限定。
以配置文件所要求的數(shù)據(jù)需求,從網(wǎng)絡(luò)側(cè)獲取相應(yīng)的數(shù)據(jù),即需求數(shù)據(jù)。其中,從網(wǎng)絡(luò)側(cè)獲取需求數(shù)據(jù)的過程實(shí)質(zhì)上就是從網(wǎng)絡(luò)側(cè)爬取數(shù)據(jù)的過程。通俗的講,配置文件實(shí)質(zhì)上就是協(xié)助已有爬蟲軟件(亦或稱爬蟲工具)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的爬取。所述配置文件的使用可以采用如下兩種方式:
方式一
執(zhí)行所述配置文件,以對爬蟲軟件進(jìn)行設(shè)置,以使所述爬蟲軟件以所述配置文件的方式遍歷web站點(diǎn),并從web站點(diǎn)中獲取所需的數(shù)據(jù)。
方式二
采用現(xiàn)有的爬蟲軟件從網(wǎng)絡(luò)側(cè)爬取目標(biāo)網(wǎng)頁;然后調(diào)取所述配置文件,并執(zhí)行所述配置文件,以從目標(biāo)網(wǎng)頁中抽取出所需的數(shù)據(jù)。
上述實(shí)施例提供的配置文件的使用方式為方式二,即從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
本發(fā)明實(shí)施例提供的技術(shù)方案,在獲取到配置信息后,即可根據(jù)配置信息生成相應(yīng)的配置文件,在進(jìn)行網(wǎng)絡(luò)側(cè)數(shù)據(jù)爬取過程中以該配置文件的方式遍歷網(wǎng)頁并從網(wǎng)頁中獲取到所需的數(shù)據(jù),降低了數(shù)據(jù)爬取工具的二次開發(fā)難度,使用起來更加便捷。
圖2示出了本發(fā)明另一實(shí)施例提供的數(shù)據(jù)處理方法的流程示意圖。如圖2所示,所述方法包括:
201、獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息。
202、根據(jù)所述配置信息,生成配置文件。
203、從數(shù)據(jù)任務(wù)隊列中,獲取任務(wù)調(diào)度系統(tǒng)分配的所述數(shù)據(jù)任務(wù)。
204、從代理池中選出一個目標(biāo)代理,以通過所述目標(biāo)代理向所述數(shù)據(jù)任務(wù)指定的站點(diǎn)發(fā)送請求。
205、接收所述目標(biāo)代理反饋的所述目標(biāo)網(wǎng)頁。
206、根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取所述需求數(shù)據(jù)。
關(guān)于上述201和202可參見前述實(shí)施例中的描述,此處不再贅述。
上述203中,數(shù)據(jù)任務(wù)可以從數(shù)據(jù)任務(wù)隊列中獲取到。其中,數(shù)據(jù)任務(wù)隊列是在獲取數(shù)據(jù)之前預(yù)先將所需爬取的任務(wù)進(jìn)行了拆分,以得到包含有多個數(shù)據(jù)任務(wù)的數(shù)據(jù)任務(wù)隊列。通過將爬取任務(wù)劃分為多個數(shù)據(jù)任務(wù)的方式,可實(shí)現(xiàn)爬蟲的分布式功能。在具體實(shí)施時,數(shù)據(jù)任務(wù)隊列可存儲在redis(存儲系統(tǒng))服務(wù)器中。redis服務(wù)器是基于內(nèi)存運(yùn)行的數(shù)據(jù)格式為key-value(鍵-值)的數(shù)據(jù)存儲系統(tǒng)。即爬蟲的分布式功能與記憶功能可基于redis來實(shí)現(xiàn)。爬蟲服務(wù)器負(fù)責(zé)從web服務(wù)器獲取網(wǎng)頁,并將網(wǎng)頁存儲在本地;再從已獲取網(wǎng)頁中抽取有效url放入redis中,使得redis中保存一個數(shù)據(jù)任務(wù)隊列。所有爬蟲節(jié)點(diǎn)都從同一數(shù)據(jù)任務(wù)隊列中獲取任務(wù),解析得到的新任務(wù)再放回數(shù)據(jù)任務(wù)隊列中。如圖3所示,一個站點(diǎn)的所有url(uniformresourcelocator,統(tǒng)一資源定位符)可以由多個運(yùn)行的爬蟲(如圖3中的spider1、spider2、…spidern)共同處理,從而能實(shí)現(xiàn)分布式功能。數(shù)據(jù)任務(wù)隊列中的數(shù)據(jù)任務(wù)是由任務(wù)調(diào)度系統(tǒng)分配給爬蟲節(jié)點(diǎn)的。任務(wù)調(diào)度系統(tǒng)是web爬取框架中的一個處理模塊,其根據(jù)調(diào)度策略從數(shù)據(jù)任務(wù)隊列中為多個爬蟲節(jié)點(diǎn)分配數(shù)據(jù)任務(wù)。
在實(shí)際應(yīng)用中會遇到如下情況:目標(biāo)代理反饋的是錯誤信息,例如報錯提示:502badgateway,而非欲爬取的目標(biāo)網(wǎng)頁,此時則認(rèn)為該目標(biāo)代理的代理請求是失敗的。當(dāng)所述目標(biāo)代理的代理請求失敗時,需從代理池中重新選擇一個新的代理作為目標(biāo)代理,以完成上述的數(shù)據(jù)任務(wù)。即上述實(shí)施例提供的所述方法,還應(yīng)包括如下步驟:若所述目標(biāo)代理反饋的是錯誤信息,則從所述代理池中重新選擇一個代理作為所述目標(biāo)代理。一種可實(shí)現(xiàn)的方式是,每次請求都改變一次代理,以提高數(shù)據(jù)獲取的效率,降低失敗率。
這里還需要補(bǔ)充的是:對于一些經(jīng)常發(fā)生請求失敗的代理來說,可將這些代理從代理池中刪除,以減少代理請求失敗的概率。那么如何來判定哪些代理是需要從代理池中移除掉的代理,本發(fā)明實(shí)施例提供的一種移除方式:
s1、若所述目標(biāo)代理反饋的是錯誤信息,則將所述目標(biāo)代理的代理標(biāo)識為加預(yù)設(shè)值。
s2、若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值大于閾值,則將所述目標(biāo)代理從所述代理池中移除。
s3、若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值小于閾值,則將所述目標(biāo)代理移動到所述代理池的隊列隊尾。
其中,上述的預(yù)設(shè)值可以是:1、2…等等,具體的可人為設(shè)定。同樣的,上述的閾值也可人為設(shè)定,本發(fā)明實(shí)施例對此不作具體限定。本發(fā)明實(shí)施例提供的技術(shù)方案中使用的代理可從第三方購買,代理提供方提供api,根據(jù)請求參數(shù)不同,請求一次可獲得幾百到幾千代理不等。如圖4所示,將請求的代理(proxy1、proxy2、…proxyn)存入代理池隊列,當(dāng)獲取任務(wù)需要使用代理的時候,從代理隊列中poll(輪詢)一個代理,每個代理有一個自己維護(hù)的標(biāo)志位;當(dāng)代理請求成功時,標(biāo)志位置為0;當(dāng)代理請求失敗時,代理標(biāo)志位加預(yù)設(shè)值(例如1);當(dāng)代理請求失敗次數(shù)超過設(shè)定的閾值k時,代理可認(rèn)為不可用,從隊列移除;當(dāng)代理標(biāo)識位小于k時,代理移動到隊尾。這樣就能維護(hù)代理池,使代理池充分可用。
進(jìn)一步的,上述實(shí)施例中所述的配置文件可包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件中的一個或多個。具體的,當(dāng)所述配置文件包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件時,上述步驟206可具體為:
基于所述數(shù)據(jù)解析配置子文件,在所述目標(biāo)網(wǎng)頁中定位出欲抓取數(shù)據(jù)的位置;
從所述目標(biāo)網(wǎng)頁中解析出所述位置處的數(shù)據(jù),得到第一數(shù)據(jù);
將所述第一數(shù)據(jù)的格式轉(zhuǎn)換為所述數(shù)據(jù)輸出格式配置子文件指定的數(shù)據(jù)輸出格式,得到第二數(shù)據(jù);
根據(jù)所述數(shù)據(jù)清洗配置子文件,對所述第二數(shù)據(jù)進(jìn)行清洗得到所述需求數(shù)據(jù)。
由上述技術(shù)方案可知,本實(shí)施例實(shí)質(zhì)上就是以模板的方式配置爬蟲類工具的數(shù)據(jù)獲取、解析規(guī)則,并將數(shù)據(jù)以自定義方式存儲等等。二次開發(fā)人員或數(shù)據(jù)分析人員只需要根據(jù)web站點(diǎn)的頁面跳轉(zhuǎn)規(guī)則、數(shù)據(jù)在web頁面的指定位置、數(shù)據(jù)持久化方式將模板配好(即配置文件配置好)。然后,爬蟲就會以該方式遍歷web站點(diǎn),從該站點(diǎn)中獲取使用者所需要的所有數(shù)據(jù)。而現(xiàn)有技術(shù)種提供的爬蟲工具,例如scrapy,只是一個爬蟲框架,開發(fā)人員需基于該爬蟲框架進(jìn)行二次開發(fā),但是對于專注業(yè)務(wù)的數(shù)據(jù)分析人員來說,學(xué)些編碼成本太高,使用起來比較困難。
進(jìn)一步的,如圖3所示一個站點(diǎn)的所有url由多個運(yùn)行的爬蟲共同處理,從而能實(shí)現(xiàn)分布式功能。但是,如果某一個爬蟲節(jié)點(diǎn)因?yàn)橐馔庵袛鄷r這種分布式的功能可能會出現(xiàn)重復(fù)獲取的情況出現(xiàn)。對此,本發(fā)明實(shí)施例可將當(dāng)前中斷時的剩余未完成的任務(wù)記為新的任務(wù),等該意外中斷的爬蟲節(jié)點(diǎn)再次啟動或有新的爬蟲節(jié)點(diǎn)獲取到該新的任務(wù)時,該爬蟲節(jié)點(diǎn)會完成該新任務(wù),因?yàn)椴粫貜?fù)處理已經(jīng)完成的任務(wù)。即上述實(shí)施例提供的所述方法,還可包括如下步驟:
207、若所述數(shù)據(jù)任務(wù)被中斷,則將中斷時剩余未完成的任務(wù)記為新任務(wù)。
208、將所述新任務(wù)添加到數(shù)據(jù)任務(wù)隊列中。
需要說明的是:上述實(shí)施例所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。比如,步驟101至步驟103的執(zhí)行主體可以為設(shè)備a;又比如,步驟101和102的執(zhí)行主體可以為設(shè)備a,步驟103的執(zhí)行主體可以為設(shè)備b;等等。
下面以外賣類應(yīng)用場景為例,對本發(fā)明實(shí)施例提供的技術(shù)方案作進(jìn)一步的說明。假設(shè)欲獲取到的需求數(shù)據(jù)是某外賣類網(wǎng)絡(luò)站點(diǎn)中的菜品價格及訂單數(shù)據(jù)。首先,根據(jù)從事數(shù)據(jù)分析的人員通過配置界面輸入的網(wǎng)站名稱、欲獲取數(shù)據(jù)(例如菜品信息)等等,生成配置文件。然后,運(yùn)行爬蟲工具從具有網(wǎng)站名稱的站點(diǎn)上爬取所有菜品信息,例如,菜品價格及訂單數(shù)量。隨后,調(diào)用之前生成的配置文件,從爬取到所有菜品信息中選出所需菜品的價格和訂單數(shù)量;將爬取到的菜品價格和訂單數(shù)量的輸出格式轉(zhuǎn)換為指定格式輸出;最后,將菜品價格中包含的冗余信息(例如rmb等)刪除。這里需要補(bǔ)充的是:某些菜品是存在大份、中份和小份之分的。因此,在配置所述配置文件時,可對這類菜品進(jìn)行配置,例如僅獲取這類菜品中份量對應(yīng)的訂單數(shù)量。
圖5示出了本發(fā)明一實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)框圖。如圖5所示,本實(shí)施例提供的所述裝置包括:第一獲取模塊610、生成模塊620和第二獲取模塊630。其中,第一獲取模塊610用于獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息。所述生成模塊620用于根據(jù)所述配置信息,生成配置文件。第二獲取模塊630用于從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
本實(shí)施例提供的技術(shù)方案,在獲取到配置信息后,即可根據(jù)配置信息生成相應(yīng)的配置文件,在進(jìn)行網(wǎng)絡(luò)側(cè)數(shù)據(jù)爬取過程中以該配置文件的方式遍歷網(wǎng)頁并從該網(wǎng)頁中獲取到所需的數(shù)據(jù),降低了數(shù)據(jù)爬取工具的二次開發(fā)難度,使用起來更加便捷。
進(jìn)一步的,所述第一獲取模塊630還用于:從數(shù)據(jù)任務(wù)隊列中,獲取任務(wù)調(diào)度系統(tǒng)分配的所述數(shù)據(jù)任務(wù);從代理池中選出一個目標(biāo)代理,以通過所述目標(biāo)代理向所述數(shù)據(jù)任務(wù)指定的站點(diǎn)發(fā)送請求;接收所述目標(biāo)代理反饋的所述目標(biāo)網(wǎng)頁。
進(jìn)一步的,所述第二獲取模塊630還用于:若所述目標(biāo)代理反饋的是錯誤信息,則從所述代理池中重新選擇一個代理作為所述目標(biāo)代理。
進(jìn)一步的,如圖6所示,所述數(shù)據(jù)處理裝置還可包括:第一處理模塊640、移除模塊650和移動模塊660。其中,所述第一處理模塊640用于當(dāng)所述目標(biāo)代理反饋的是錯誤信息時,將所述目標(biāo)代理的代理標(biāo)識位加預(yù)設(shè)值。移除模塊650用于當(dāng)所述目標(biāo)代理的代理標(biāo)識位的數(shù)值大于閾值時,將所述目標(biāo)代理從所述代理池中移除。移動模塊660用于當(dāng)所述目標(biāo)代理的代理標(biāo)識位的數(shù)值小于閾值時,將所述目標(biāo)代理移動到所述代理池的隊列隊尾。
進(jìn)一步的,如圖6所示,所述數(shù)據(jù)處理裝置還可包括:第二處理模塊670和添加模塊680。其中,第二處理模塊670用于當(dāng)所述數(shù)據(jù)任務(wù)被中斷時,將中斷時剩余未完成的任務(wù)記為新任務(wù);添加模塊680用于將所述新任務(wù)添加到數(shù)據(jù)任務(wù)隊列中。
進(jìn)一步的,上述第一獲取模塊610還可用于:展現(xiàn)配置界面;獲取所述配置界面上輸入的所述配置信息。
進(jìn)一步的,上述配置信息包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種。相應(yīng)的,上述實(shí)施例中的所述生成模塊620還用于:
根據(jù)所述數(shù)據(jù)位置定位規(guī)則信息,生成數(shù)據(jù)解析配置子文件;和/或
根據(jù)所述數(shù)據(jù)輸出格式信息,生成數(shù)據(jù)輸出格式配置子文件;和/或
根據(jù)所述清洗規(guī)則信息,生成數(shù)據(jù)清洗配置子文件。
進(jìn)一步的,若所述配置文件包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件,則上述第二獲取模塊630還可用于:
基于所述數(shù)據(jù)解析配置子文件,在所述目標(biāo)網(wǎng)頁中定位出欲抓取數(shù)據(jù)的位置;
從所述目標(biāo)網(wǎng)頁中解析出所述位置處的數(shù)據(jù),得到第一數(shù)據(jù);
將所述第一數(shù)據(jù)的格式轉(zhuǎn)換為所述數(shù)據(jù)輸出格式配置子文件指定的數(shù)據(jù)輸出格式,得到第二數(shù)據(jù);
根據(jù)所述數(shù)據(jù)清洗配置子文件,對所述第二數(shù)據(jù)進(jìn)行清洗得到所述需求數(shù)據(jù)。
這里需要說明的是:上述實(shí)施例提供的數(shù)據(jù)處理裝置可實(shí)現(xiàn)上述各方法實(shí)施例中描述的技術(shù)方案,上述各模塊或單元具體實(shí)現(xiàn)的原理可參見上述各方法實(shí)施例中的相應(yīng)內(nèi)容,此處不再贅述。
在一個可能的設(shè)計中,數(shù)據(jù)處理裝置的結(jié)構(gòu)中包括處理器710和存儲器720(如圖7所示),所述存儲器720用于存儲支持?jǐn)?shù)據(jù)處理裝置執(zhí)行上述數(shù)據(jù)處理方法的程序,所述處理器710被配置為用于執(zhí)行所述存儲器720中存儲的程序。
所述程序包括一條或多條計算機(jī)指令,其中,所述一條或多條計算機(jī)指令供所述處理器調(diào)用執(zhí)行。
存儲器720作為一種非非易失性計算機(jī)可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法對應(yīng)的程序指令/模塊(例如,附圖5所示的第一獲取模塊610、生成模塊620和第二獲取模塊630)。處理器710通過運(yùn)行存儲在存儲器720中的非易失性軟件程序、指令以及模塊,從而執(zhí)行電子設(shè)備的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例的數(shù)據(jù)處理方法。
所述處理器710用于:獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息;根據(jù)所述配置信息,生成配置文件;從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
處理器710可執(zhí)行本發(fā)明實(shí)施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果,未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請實(shí)施例所提供的方法。
本發(fā)明實(shí)施例還提供的一種計算機(jī)存儲介質(zhì),用于存儲數(shù)據(jù)處理裝置所用的計算機(jī)軟件指令,其包含用于執(zhí)行上述方法實(shí)施例中的數(shù)據(jù)處理方法為數(shù)據(jù)處理裝置所涉及的程序。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
本發(fā)明公開了a1、一種數(shù)據(jù)處理方法,包括:
獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息;
根據(jù)所述配置信息,生成配置文件;
從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;
根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取所述需求數(shù)據(jù)。
a2、如a1所述的方法中,所述從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁,包括:
從數(shù)據(jù)任務(wù)隊列中,獲取任務(wù)調(diào)度系統(tǒng)分配的所述數(shù)據(jù)任務(wù);
從代理池中選出一個目標(biāo)代理,以通過所述目標(biāo)代理向所述數(shù)據(jù)任務(wù)指定的站點(diǎn)發(fā)送請求;
接收所述目標(biāo)代理反饋的所述目標(biāo)網(wǎng)頁。
a3、如a2所述的方法中,所述從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁,還包括:
若所述目標(biāo)代理反饋的是錯誤信息,則從所述代理池中重新選擇一個代理作為所述目標(biāo)代理。
a4、如a3所述的方法,還包括:
若所述目標(biāo)代理反饋的是錯誤信息,則將所述目標(biāo)代理的代理標(biāo)識位加預(yù)設(shè)值;
若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值大于閾值,則將所述目標(biāo)代理從所述代理池中移除;
若所述目標(biāo)代理的代理標(biāo)識位的數(shù)值小于閾值,則將所述目標(biāo)代理移動到所述代理池的隊列隊尾。
a5、如a2至a4中任一項(xiàng)所述的方法,還包括:
若所述數(shù)據(jù)任務(wù)被中斷,則將中斷時剩余未完成的任務(wù)記為新任務(wù);
將所述新任務(wù)添加到所述數(shù)據(jù)任務(wù)隊列中。
a6、如a1至a4中任一項(xiàng)所述的方法中,所述獲取配置信息,包括:
展現(xiàn)配置界面;
獲取所述配置界面上輸入的所述配置信息。
a7、如a6所述的方法中,所述配置信息包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種;以及
所述根據(jù)所述配置信息,生成配置文件,包括:
根據(jù)所述數(shù)據(jù)位置定位規(guī)則信息,生成數(shù)據(jù)解析配置子文件;和/或
根據(jù)所述數(shù)據(jù)輸出格式信息,生成數(shù)據(jù)輸出格式配置子文件;和/或
根據(jù)所述清洗規(guī)則信息,生成數(shù)據(jù)清洗配置子文件。
a8、如a1至a4中任一項(xiàng)所述的方法中,所述配置文件包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件;以及
所述根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù),包括:
基于所述數(shù)據(jù)解析配置子文件,在所述目標(biāo)網(wǎng)頁中定位出欲抓取數(shù)據(jù)的位置;
從所述目標(biāo)網(wǎng)頁中解析出所述位置處的數(shù)據(jù),得到第一數(shù)據(jù);
將所述第一數(shù)據(jù)的格式轉(zhuǎn)換為所述數(shù)據(jù)輸出格式配置子文件指定的數(shù)據(jù)輸出格式,得到第二數(shù)據(jù);
根據(jù)所述數(shù)據(jù)清洗配置子文件,對所述第二數(shù)據(jù)進(jìn)行清洗得到所述需求數(shù)據(jù)。
本發(fā)明還公開了b9、一種數(shù)據(jù)處理裝置,包括:
第一獲取模塊,用于獲取有關(guān)網(wǎng)絡(luò)數(shù)據(jù)處理規(guī)則的配置信息;
生成模塊,用于根據(jù)所述配置信息,生成配置文件;
第二獲取模塊,用于從網(wǎng)絡(luò)側(cè)獲取數(shù)據(jù)任務(wù)指示站點(diǎn)的目標(biāo)網(wǎng)頁;根據(jù)所述配置文件,從所述目標(biāo)網(wǎng)頁中獲取需求數(shù)據(jù)。
b10、如b9所述的裝置中,所述第二獲取模塊還用于:
從數(shù)據(jù)任務(wù)隊列中,獲取任務(wù)調(diào)度系統(tǒng)分配的所述數(shù)據(jù)任務(wù);
從代理池中選出一個目標(biāo)代理,以通過所述目標(biāo)代理向所述數(shù)據(jù)任務(wù)指定的站點(diǎn)發(fā)送請求;
接收所述目標(biāo)代理反饋的所述目標(biāo)網(wǎng)頁。
b11、如b10所述的裝置中,所述第二獲取模塊還用于:
若所述目標(biāo)代理反饋的是錯誤信息,則從所述代理池中重新選擇一個代理作為所述目標(biāo)代理。
b12、如b11所述的裝置,還包括:
第一處理模塊,用于當(dāng)所述目標(biāo)代理反饋的是錯誤信息時,將所述目標(biāo)代理的代理標(biāo)識位加預(yù)設(shè)值;
移除模塊,用于當(dāng)所述目標(biāo)代理的代理標(biāo)識位的數(shù)值大于閾值時,將所述目標(biāo)代理從所述代理池中移除;
移動模塊,用于當(dāng)所述目標(biāo)代理的代理標(biāo)識位的數(shù)值小于閾值時,將所述目標(biāo)代理移動到所述代理池的隊列隊尾。
b13、如b10至b12中任一項(xiàng)所述的裝置,還包括:
第二處理模塊,用于當(dāng)所述數(shù)據(jù)任務(wù)被中斷時,將中斷時剩余未完成的任務(wù)記為新任務(wù);
添加模塊,用于將所述新任務(wù)添加到數(shù)據(jù)任務(wù)隊列中。
b14、如b9至b12中任一項(xiàng)所述的裝置中,所述第一獲取模塊還用于:
展現(xiàn)配置界面;
獲取所述配置界面上輸入的所述配置信息。
b15、如b14所述的裝置中,所述配置信息包括:數(shù)據(jù)位置定位規(guī)則信息、數(shù)據(jù)輸出格式信息和數(shù)據(jù)清洗規(guī)則信息中的一種或多種;以及
所述生成模塊還用于:
根據(jù)所述數(shù)據(jù)位置定位規(guī)則信息,生成數(shù)據(jù)解析配置子文件;和/或
根據(jù)所述數(shù)據(jù)輸出格式信息,生成數(shù)據(jù)輸出格式配置子文件;和/或
根據(jù)所述清洗規(guī)則信息,生成數(shù)據(jù)清洗配置子文件。
b16、如b9至b12中任一項(xiàng)所述的裝置中,所述配置文件包括:數(shù)據(jù)解析配置子文件、數(shù)據(jù)輸出格式配置子文件和數(shù)據(jù)清洗配置子文件;以及
所述第二獲取模塊還用于:
基于所述數(shù)據(jù)解析配置子文件,在所述目標(biāo)網(wǎng)頁中定位出欲抓取數(shù)據(jù)的位置;
從所述目標(biāo)網(wǎng)頁中解析出所述位置處的數(shù)據(jù),得到第一數(shù)據(jù);
將所述第一數(shù)據(jù)的格式轉(zhuǎn)換為所述數(shù)據(jù)輸出格式配置子文件指定的數(shù)據(jù)輸出格式,得到第二數(shù)據(jù);
根據(jù)所述數(shù)據(jù)清洗配置子文件,對所述第二數(shù)據(jù)進(jìn)行清洗得到所述需求數(shù)據(jù)。