本發(fā)明涉及網(wǎng)頁(yè)數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)采集的方法及裝置。
背景技術(shù):
富因特網(wǎng)應(yīng)用程序的廣泛使用,倒逼傳統(tǒng)數(shù)據(jù)采集方法的升級(jí)。目前很多網(wǎng)站采用富客戶(hù)端應(yīng)用技術(shù)進(jìn)行數(shù)據(jù)的訪問(wèn),富客戶(hù)端具有很強(qiáng)交互性,可以為用戶(hù)提供非常好用戶(hù)體驗(yàn)和更全方位的數(shù)據(jù)展現(xiàn)方式。富客戶(hù)端常常采用腳本語(yǔ)言,如JavaScript或ActionScript等,用于動(dòng)態(tài)HTML和Flash完成編排媒體類(lèi)型以及數(shù)據(jù)請(qǐng)求與展現(xiàn)??蛻?hù)端腳本正在改變界面行為,如通過(guò)一個(gè)特定的web頁(yè)面響應(yīng)鼠標(biāo)或鍵盤(pán)操作,或在指定時(shí)間事件,進(jìn)行與服務(wù)器端的交互。在這種情況下,用戶(hù)動(dòng)態(tài)行為變得十分重要,數(shù)據(jù)的請(qǐng)求和展現(xiàn)不再如傳統(tǒng)的URL鏈接方式和HTML頁(yè)面元素,而是通過(guò)富客戶(hù)端腳本進(jìn)行,造成了傳統(tǒng)數(shù)據(jù)采集方法難以模仿這種差異性大、方式多樣的用戶(hù)請(qǐng)求。
因此,亟需一種能夠滿(mǎn)足多樣化的用戶(hù)請(qǐng)求的數(shù)據(jù)采集方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供一種數(shù)據(jù)采集方法及裝置,用以采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),以便在用戶(hù)需要時(shí)為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集方法,包括:獲取網(wǎng)頁(yè)頁(yè)面;確定所述網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面;在所述網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),將所述動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便所述渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面;接收所述渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面;對(duì)所述可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取所述可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。
可選地,所述對(duì)所述可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取所述可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)包括:通過(guò)PhantomJS實(shí)例化頁(yè)面技術(shù)獲取所述可讀動(dòng)態(tài)頁(yè)面的屬性與結(jié)構(gòu);根據(jù)所述動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),獲取所述動(dòng)態(tài)頁(yè)面可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
可選地,在所述對(duì)所述可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取所述可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)之后,還包括:通過(guò)爬蟲(chóng)核心模塊對(duì)獲取的可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)進(jìn)行存儲(chǔ)。
進(jìn)一步的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的方法,包括:接收數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)頁(yè)面;對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面;將所述可讀動(dòng)態(tài)頁(yè)面發(fā)送至所述數(shù)據(jù)采集的裝置。
可選地,在所述對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面之前,還包括:確定對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理的空閑渲染裝置;所述對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面包括:將所述動(dòng)態(tài)頁(yè)面分配至所述空閑渲染裝置,通過(guò)所述空閑渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
進(jìn)一步的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的裝置,包括:獲取單元,用于獲取網(wǎng)頁(yè)頁(yè)面;確定單元,用于確定所述獲取單元獲取的所述網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面;發(fā)送單元,用于在所述確定單元確定所述網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),將所述動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便所述渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面;接收單元,用于接收所述渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面;所述獲取單元,還用于對(duì)所述接收單元接收的所述可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取所述可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。
可選地,所述獲取單元,具體用于通過(guò)PhantomJS實(shí)例化頁(yè)面技術(shù)獲取所述可讀動(dòng)態(tài)頁(yè)面的屬性與結(jié)構(gòu);根據(jù)所述動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),獲取所述動(dòng)態(tài)頁(yè)面可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
可選地,還包括:存儲(chǔ)單元,用于通過(guò)爬蟲(chóng)核心模塊對(duì)獲取的所述可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)進(jìn)行存儲(chǔ)。
進(jìn)一步的,本發(fā)明實(shí)施例提供了一種渲染裝置,包括:接收單元,用于接收數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)頁(yè)面;處理單元,用于對(duì)所述接收單元接收的所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面;發(fā)送單元,用于將所述可讀動(dòng)態(tài)頁(yè)面發(fā)送至所述數(shù)據(jù)采集的裝置。
可選地,所述處理單元,具體用于確定對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理的空閑渲染裝置;將所述動(dòng)態(tài)頁(yè)面分配至所述空閑渲染裝置,通過(guò)所述空閑渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將所述動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集方法及裝置,包括:獲取網(wǎng)頁(yè)頁(yè)面;確定網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面;在網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),將動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面;接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面;對(duì)可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。這樣一來(lái),通過(guò)數(shù)據(jù)采集的裝置將需要進(jìn)行數(shù)據(jù)采集的動(dòng)態(tài)頁(yè)面發(fā)送至能夠?qū)?dòng)態(tài)頁(yè)面進(jìn)行渲染處理的渲染裝置,進(jìn)而通過(guò)渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。本發(fā)明可以獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)采集的方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)采集的方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)采集的方法的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)采集的方法的流程示意圖
圖5為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)采集的裝置的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)采集的裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例提供的一種渲染裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的方法,如圖1所示,包括:
步驟101、獲取網(wǎng)頁(yè)頁(yè)面。
具體的,數(shù)據(jù)采集的裝置可以通過(guò)動(dòng)態(tài)抓取的方式獲取網(wǎng)頁(yè)頁(yè)面。
步驟102、確定網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面。
具體的,數(shù)據(jù)采集的裝置在獲取到網(wǎng)頁(yè)頁(yè)面后,需要確定此網(wǎng)頁(yè)頁(yè)面為靜態(tài)頁(yè)面還是動(dòng)態(tài)頁(yè)面,此時(shí)可以根據(jù)解析規(guī)則,對(duì)獲取的網(wǎng)頁(yè)頁(yè)面進(jìn)行解析,若能夠解析出可讀數(shù)據(jù),則可以確定此網(wǎng)頁(yè)頁(yè)面為靜態(tài)頁(yè)面。若解析出的為不可讀數(shù)據(jù),則可以此網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面。
步驟103、在網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),將動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
具體的,數(shù)據(jù)采集的裝置在確定網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面,需要將其轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,此時(shí),數(shù)據(jù)采集的裝置可以將其發(fā)送至渲染裝置,由渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,進(jìn)而可以將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
步驟104、接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面。
具體的,渲染裝置在將接收的動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面后,發(fā)送至數(shù)據(jù)采集的裝置。此時(shí)數(shù)據(jù)采集的裝置可以接收到接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面。
步驟105、對(duì)可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。
具體的,數(shù)據(jù)采集的裝置可以在獲取到可讀動(dòng)態(tài)頁(yè)面后,對(duì)此動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取到可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
進(jìn)一步的,對(duì)可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)包括:通過(guò)PhantomJS實(shí)例化頁(yè)面技術(shù)獲取可讀動(dòng)態(tài)頁(yè)面的屬性與結(jié)構(gòu);根據(jù)動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),獲取動(dòng)態(tài)頁(yè)面可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
即為,數(shù)據(jù)采集的裝置可以通過(guò)PhantomJS實(shí)例化頁(yè)面技術(shù)獲取可讀動(dòng)態(tài)頁(yè)面的屬性與結(jié)構(gòu),并根據(jù)動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),通過(guò)jQuery庫(kù)相關(guān)函數(shù)獲取到動(dòng)態(tài)頁(yè)面可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
數(shù)據(jù)采集的裝置可以獲取到多樣化的動(dòng)態(tài)頁(yè)面的數(shù)據(jù),即為可以處理多樣化的web(World Wide Web,萬(wàn)維網(wǎng))技術(shù),如DOM(Document Object Model,文檔對(duì)象模型)結(jié)構(gòu)、CSS(Cascading Style Sheet,級(jí)聯(lián)樣式表)選擇器、JSON(JavaScript Object Notation)等。
示例性的,動(dòng)態(tài)頁(yè)面的導(dǎo)航方式是多種多樣的,比如使用JavaScript方法封裝導(dǎo)航函數(shù)的方法、通過(guò)檢測(cè)瀏覽器中屏幕滾動(dòng)的方法等等。使用PhantomJS的自動(dòng)頁(yè)面導(dǎo)航技術(shù),獲取動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),然后通過(guò)引入jQuery庫(kù)相關(guān)函數(shù)以獲取新的頁(yè)面元素,完成頁(yè)面的導(dǎo)航。
這樣,通過(guò)本發(fā)明可以對(duì)多樣化的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行數(shù)據(jù)的獲取,進(jìn)而可以保證多樣化的用戶(hù)請(qǐng)求得到滿(mǎn)足。
這樣一來(lái),通過(guò)數(shù)據(jù)采集的裝置將需要進(jìn)行數(shù)據(jù)采集的動(dòng)態(tài)頁(yè)面發(fā)送至能夠?qū)?dòng)態(tài)頁(yè)面進(jìn)行渲染處理的渲染裝置,進(jìn)而通過(guò)渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。本發(fā)明可以獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的方法,如圖2所示,包括:
步驟201、接收數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)頁(yè)面。
步驟202、對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
具體的,渲染的裝置在接收到動(dòng)態(tài)網(wǎng)頁(yè)后,可以對(duì)此動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染處理,渲染后的動(dòng)態(tài)網(wǎng)頁(yè)即為可讀動(dòng)態(tài)網(wǎng)頁(yè),實(shí)現(xiàn)將動(dòng)態(tài)網(wǎng)頁(yè)轉(zhuǎn)換為可讀動(dòng)態(tài)網(wǎng)頁(yè)。
進(jìn)一步的,渲染的裝置在接收到動(dòng)態(tài)網(wǎng)頁(yè)后,可以將與已接收的其他數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行比較,若存在相同的動(dòng)態(tài)網(wǎng)頁(yè),則可以在相同的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染處理后,直接獲取渲染后的可讀動(dòng)態(tài)網(wǎng)頁(yè),無(wú)需在對(duì)接收的動(dòng)態(tài)網(wǎng)頁(yè)在進(jìn)行一次渲染。
若沒(méi)有相同的動(dòng)態(tài)網(wǎng)頁(yè),則需對(duì)接收的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染處理,得到可讀動(dòng)態(tài)網(wǎng)頁(yè)。
步驟203、將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。
這樣一來(lái),通過(guò)渲染的裝置可以對(duì)多樣化的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染處理,得到數(shù)據(jù)采集的裝置能夠讀取數(shù)據(jù)的可讀動(dòng)態(tài)網(wǎng)頁(yè),并發(fā)送至數(shù)據(jù)采集的裝置,以便數(shù)據(jù)采集的裝置獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的方法,包括:
步驟301、數(shù)據(jù)采集的裝置接收客戶(hù)端發(fā)送的獲取網(wǎng)頁(yè)頁(yè)面數(shù)據(jù)的請(qǐng)求。
具體的,客戶(hù)端可以通過(guò)Ajax請(qǐng)求向數(shù)據(jù)采集的裝置發(fā)送獲取網(wǎng)頁(yè)頁(yè)面數(shù)據(jù)的請(qǐng)求。
步驟302、數(shù)據(jù)采集的裝置獲取網(wǎng)頁(yè)頁(yè)面。
具體的,可參考步驟101,在此不再贅述。
進(jìn)一步的,數(shù)據(jù)采集的裝置可以根據(jù)接收的Ajax請(qǐng)求,確定需獲取的網(wǎng)頁(yè)頁(yè)面,進(jìn)而動(dòng)態(tài)抓取對(duì)應(yīng)的網(wǎng)頁(yè)頁(yè)面。
步驟303、數(shù)據(jù)采集的裝置確定網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面。
具體的,可參考步驟102,在此不再贅述。
步驟304、在網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),數(shù)據(jù)采集的裝置將動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。渲染裝置接收數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)頁(yè)面。
具體的,可參考步驟103及步驟201,在此不再贅述.
需要說(shuō)明的是,本發(fā)明中渲染裝置可以是多個(gè),也可以是一個(gè)。在有多個(gè)渲染裝置時(shí),在多個(gè)渲染裝置中可以有一個(gè)用于管理其他渲染裝置的渲染裝置,可以成為管理渲染裝置。此時(shí),數(shù)據(jù)采集的裝置與此管理渲染裝置進(jìn)行通信。即為,上述步驟301-304中的渲染裝置為管理渲染裝置。此時(shí),可以執(zhí)行步驟305a-307a,步驟308-309,如圖3所示,。在僅有一個(gè)渲染裝置時(shí),可以執(zhí)行步驟305b-306b,步驟308-309,如圖4所示,具體如下:
步驟305a、管理渲染裝置確定對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理的空閑渲染裝置。
此時(shí),管理渲染裝置可以查看其他渲染裝置的當(dāng)前運(yùn)行狀態(tài),從而確定出當(dāng)前處于空閑態(tài)的渲染裝置。
需要說(shuō)明的是,若管理渲染裝置確定出其他渲染裝置均處于工作狀態(tài),沒(méi)有處于空閑狀態(tài)時(shí),可以將隨機(jī)或是通過(guò)其他預(yù)定方式確定出處理此動(dòng)態(tài)頁(yè)面的渲染裝置,并將此動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置中。接收到統(tǒng)統(tǒng)頁(yè)面的渲染裝置可以對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將其轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,具體可參考步驟202。在渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面后,可以由其自身直接將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。也可以,將可讀動(dòng)態(tài)頁(yè)面發(fā)送至管理渲染裝置,由管理渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。
步驟305b、渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
具體的,可參考步驟202,在此不再贅述。
步驟306a、管理渲染裝置將動(dòng)態(tài)頁(yè)面分配至空閑渲染裝置,通過(guò)空閑渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
具體的,管理渲染裝置在確定出處于空閑態(tài)的空閑渲染裝置后,可以將動(dòng)態(tài)頁(yè)面分配至此空閑渲染裝置,由此空閑渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將其轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
其中,空閑渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可調(diào)動(dòng)態(tài)頁(yè)面的方法可以參考步驟202,在此不再贅述。
步驟306b、渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。數(shù)據(jù)采集的裝置接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面。
具體的,可參步驟203及步驟104,在此不再贅述。
步驟307a、渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置,數(shù)據(jù)采集的裝置接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面。
具體的,空閑渲染裝置在將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面后,可以由其自身直接將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置,此時(shí),步驟307a中的渲染裝置為空閑渲染裝置。
當(dāng)然空閑渲染裝置也可以在動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面后,并不直接發(fā)送至數(shù)據(jù)采集的裝置,而是通過(guò)管理渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。此時(shí),空閑渲染裝置可以將可讀動(dòng)態(tài)頁(yè)面發(fā)送至管理渲染裝置,由管理渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。此時(shí),步驟307a中的渲染裝置為管理渲染裝置。
渲染裝置將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置,可參考步驟203,數(shù)據(jù)采集的裝置接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面可參考步驟104,在此不再贅述。
步驟308、數(shù)據(jù)采集的裝置對(duì)可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。
具體的,可參考步驟105,在此不再贅述。
步驟309、數(shù)據(jù)采集的裝置通過(guò)爬蟲(chóng)核心模塊對(duì)獲取的可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)進(jìn)行存儲(chǔ)。
具體的,數(shù)據(jù)采集的裝置在獲取了可讀動(dòng)態(tài)頁(yè)面數(shù)據(jù)后,可以對(duì)可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)進(jìn)行存儲(chǔ),以便向用戶(hù)反饋。此時(shí),可以通過(guò)爬蟲(chóng)核心模塊進(jìn)行動(dòng)態(tài)數(shù)據(jù)的持續(xù)獲取,規(guī)則定義及存儲(chǔ)等操作,直至完成數(shù)據(jù)采集的持續(xù)化,即為將數(shù)據(jù)持久化存儲(chǔ)至數(shù)據(jù)庫(kù)集群的。
這樣一來(lái),通過(guò)數(shù)據(jù)采集的裝置將需要進(jìn)行數(shù)據(jù)采集的動(dòng)態(tài)頁(yè)面發(fā)送至能夠?qū)?dòng)態(tài)頁(yè)面進(jìn)行渲染處理的渲染裝置,進(jìn)而通過(guò)渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。本發(fā)明可以獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)采集的裝置,如圖5所示,包括:
獲取單元401,用于獲取網(wǎng)頁(yè)頁(yè)面。
確定單元402,用于確定獲取單元401獲取的網(wǎng)頁(yè)頁(yè)面是否為動(dòng)態(tài)頁(yè)面。
發(fā)送單元403,用于在確定單元402確定網(wǎng)頁(yè)頁(yè)面為動(dòng)態(tài)頁(yè)面時(shí),將動(dòng)態(tài)頁(yè)面發(fā)送至渲染裝置,以便渲染裝置對(duì)所述動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
接收單元404,用于接收渲染裝置發(fā)的可讀動(dòng)態(tài)頁(yè)面。
獲取單元401,還用于對(duì)接收單元接收404的可讀動(dòng)態(tài)頁(yè)面進(jìn)行解析處理,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。
具體的,獲取單元401,具體用于通過(guò)PhantomJS實(shí)例化頁(yè)面技術(shù)獲取可讀動(dòng)態(tài)頁(yè)面的屬性與結(jié)構(gòu);根據(jù)動(dòng)態(tài)頁(yè)面屬性與結(jié)構(gòu),獲取動(dòng)態(tài)頁(yè)面可讀動(dòng)態(tài)頁(yè)面中的數(shù)據(jù)。
進(jìn)一步的,上述數(shù)據(jù)采集的裝置,如圖6所示,還包括:
存儲(chǔ)單元405,用于通過(guò)爬蟲(chóng)核心模塊對(duì)獲取的可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)進(jìn)行存儲(chǔ)。
這樣一來(lái),通過(guò)數(shù)據(jù)采集的裝置將需要進(jìn)行數(shù)據(jù)采集的動(dòng)態(tài)頁(yè)面發(fā)送至能夠?qū)?dòng)態(tài)頁(yè)面進(jìn)行渲染處理的渲染裝置,進(jìn)而通過(guò)渲染裝置將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面,獲取可讀動(dòng)態(tài)頁(yè)面的數(shù)據(jù)。本發(fā)明可以獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
本發(fā)明實(shí)施例提供了一種渲染裝置,如圖7所示,包括:
接收單元501,用于接收數(shù)據(jù)采集的裝置發(fā)送的動(dòng)態(tài)頁(yè)面。
處理單元502,用于對(duì)接收單元501接收的動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
具體的,處理單元502,具體用于確定對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理的空閑渲染裝置;將動(dòng)態(tài)頁(yè)面分配至空閑渲染裝置,通過(guò)空閑渲染裝置對(duì)動(dòng)態(tài)頁(yè)面進(jìn)行渲染處理,將動(dòng)態(tài)頁(yè)面轉(zhuǎn)換為可讀動(dòng)態(tài)頁(yè)面。
發(fā)送單元503,用于將可讀動(dòng)態(tài)頁(yè)面發(fā)送至數(shù)據(jù)采集的裝置。
這樣一來(lái),通過(guò)渲染的裝置可以對(duì)多樣化的動(dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染處理,得到數(shù)據(jù)采集的裝置能夠讀取數(shù)據(jù)的可讀動(dòng)態(tài)網(wǎng)頁(yè),并發(fā)送至數(shù)據(jù)采集的裝置,以便數(shù)據(jù)采集的裝置獲取到動(dòng)態(tài)頁(yè)面的數(shù)據(jù),進(jìn)而可以在用戶(hù)需求時(shí),將采集的數(shù)據(jù)反饋至用戶(hù),實(shí)現(xiàn)了通過(guò)采集動(dòng)態(tài)網(wǎng)頁(yè)的數(shù)據(jù),為用戶(hù)提供采集的數(shù)據(jù),提高用戶(hù)體驗(yàn)的目的。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。