專(zhuān)利名稱:一種用于抓取網(wǎng)站數(shù)據(jù)的方法與設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種用于抓取網(wǎng)站數(shù)據(jù)的技術(shù)。
背景技術(shù):
現(xiàn)有技術(shù)中,從數(shù)據(jù)提供網(wǎng)站抓取數(shù)據(jù)一般需要針對(duì)每個(gè)網(wǎng)站單獨(dú)執(zhí)行一個(gè)腳本,但是當(dāng)數(shù)據(jù)提供網(wǎng)站數(shù)量較多時(shí),需要維護(hù)多套抓取腳本,因此腳本維護(hù)成本較高,數(shù)據(jù)抓取效率不高;同時(shí),在數(shù)據(jù)提供網(wǎng)站設(shè)置分類(lèi)信息后,在其服務(wù)器端會(huì)存有最后一次設(shè)置分類(lèi)信息的cookie信息,但由于傳統(tǒng)數(shù)據(jù)抓取一般采用廣度優(yōu)先的抓取方式,且在同一頁(yè)面中更換分類(lèi)信息時(shí),該頁(yè)面鏈接的統(tǒng)一資源定位符(URL)不會(huì)改變,使得在訪問(wèn)同一頁(yè)面的每一分類(lèi)信息鏈接后,可能抓取到的數(shù)據(jù)為cookie信息中記錄的最后一次選擇的分類(lèi)信息,而非所期望抓取的每一分類(lèi)信息對(duì)應(yīng)的目標(biāo)數(shù)據(jù),數(shù)據(jù)抓取的準(zhǔn)確性不高。因此,如何實(shí)現(xiàn)網(wǎng)站數(shù)據(jù)的有效抓取,成為目前亟待解決的問(wèn)題之一。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用于抓取網(wǎng)站數(shù)據(jù)的方法與設(shè)備。根據(jù)本發(fā)明的一個(gè)方面,提供了一種計(jì)算機(jī)實(shí)現(xiàn)的用于抓取網(wǎng)站數(shù)據(jù)的方法,該方法包括以下步驟:a根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面;b根據(jù)第一預(yù)定規(guī) 則,判斷所述下一層頁(yè)面是否為目標(biāo)信息頁(yè)面;Cl當(dāng)所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a和b,直至滿足第一預(yù)定條件;c2當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面;其中,該方法還包括:-當(dāng)滿足第二預(yù)定條件,將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a、b、cl 和 c2。根據(jù)本發(fā)明的另一方面,還提供了一種用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備,該設(shè)備包括:第一獲取裝置,用于根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面;判斷裝置,用于根據(jù)第一預(yù)定規(guī)則,判斷所述下一層頁(yè)面是否為目標(biāo)信息頁(yè)面;第一循環(huán)裝置,用于當(dāng)判斷所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述第一獲取裝置與所述判斷裝置的操作,直至滿足第一預(yù)定條件;其中,該設(shè)備還包括:第一抓取裝置,用于當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面;
其中,所述設(shè)備還包括:第二循環(huán)裝置,用于當(dāng)滿足第二預(yù)定條件,將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述第一獲取裝置、所述判斷裝置、所述第一循環(huán)判斷裝置和所述第一抓取裝置的操作。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)待抓取數(shù)據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,采用深度優(yōu)先遍歷的方式,實(shí)現(xiàn)了抓取整個(gè)網(wǎng)站的目標(biāo)數(shù)據(jù),從而降低了多腳本數(shù)據(jù)抓取的維護(hù)成本,并保證了對(duì)目標(biāo)數(shù)據(jù)抓取的準(zhǔn)確性,提高數(shù)據(jù)抓取的效率。
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:圖1示出根據(jù)本發(fā)明一個(gè)方面的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖;圖2示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的示例圖;圖3出根據(jù)本發(fā)明另一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖;圖4出根據(jù)本發(fā)明又一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖;圖5示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖;圖6示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖;圖7示出根據(jù)本發(fā)明另一個(gè)方面的用于抓取網(wǎng)站數(shù)據(jù)的方法流程
圖8出根據(jù)本發(fā)明另一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖;圖9出根據(jù)本發(fā)明又一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖;圖10示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖;圖11示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。圖1示出根據(jù)本發(fā)明一個(gè)方面的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖。其中,抓取設(shè)備I包括第一獲取裝置111、判斷裝置112、第一循環(huán)裝置113、第一抓取裝置114及第二循環(huán)裝置115。在此,抓取設(shè)備I為網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。在此,抓取設(shè)備I與網(wǎng)站的網(wǎng)絡(luò)設(shè)備之間可通過(guò)任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動(dòng)通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無(wú)線傳輸方式。以下參照?qǐng)D1來(lái)對(duì)抓取設(shè)備I抓取目標(biāo)信息頁(yè)面的過(guò)程進(jìn)行詳細(xì)描述:首先,第一獲取裝置111根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。在此,所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息包括但不限于以下任一項(xiàng):
I)待抓取數(shù)據(jù)網(wǎng)站的首層頁(yè)面的統(tǒng)一資源定位符(URL);2)待抓取數(shù)據(jù)網(wǎng)站的層數(shù)信息,即首層頁(yè)面(第一層)至目標(biāo)信息頁(yè)面(最后一層)的層數(shù);3)待抓取數(shù)據(jù)網(wǎng)站每層頁(yè)面中包含鏈接的匹配特征信息;4)待抓取數(shù)據(jù)網(wǎng)站每層頁(yè)面的頁(yè)面標(biāo)識(shí)信息;其中,所述頁(yè)面標(biāo)識(shí)信息可位于頁(yè)面的標(biāo)記語(yǔ)言文件的自定義標(biāo)簽、注釋等;在此,所述標(biāo)記語(yǔ)言文件包括但不限于:a)超文本標(biāo)記語(yǔ)言(HTML)文件;b)可擴(kuò)展超文本標(biāo)記語(yǔ)言(XHTML)文件;
c)可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件。具體地,當(dāng)?shù)谝猾@取裝置111首次訪問(wèn)待抓取數(shù)據(jù)網(wǎng)站時(shí),首先,第一獲取裝置111根據(jù)該網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中示出的首層頁(yè)面URL,通過(guò)預(yù)定的通信方式,如http、https等通信協(xié)議,向該網(wǎng)站的網(wǎng)絡(luò)設(shè)備,如網(wǎng)絡(luò)服務(wù)器,發(fā)送首層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的首層頁(yè)面;接著,第一獲取裝置111將該網(wǎng)站的首層頁(yè)面作為當(dāng)前頁(yè)面,并提取該當(dāng)前頁(yè)面中包含的全部鏈接,并從其中選擇一個(gè)未訪問(wèn)鏈接;其中,由于抓取設(shè)備I首次訪問(wèn)該網(wǎng)站,故該當(dāng)前頁(yè)面中的全部鏈接均為未訪問(wèn)鏈接;隨后,第一獲取裝置111根據(jù)已被選擇的該未訪問(wèn)鏈接,通過(guò)預(yù)定的通信方式,向該網(wǎng)絡(luò)服務(wù)器發(fā)送該未訪問(wèn)鏈接指向下一層頁(yè)面的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的下一層頁(yè)面,同時(shí)在已訪問(wèn)列表中將指向該下一層頁(yè)面的該未訪問(wèn)鏈接記錄為已訪問(wèn)鏈接,用于標(biāo)識(shí)已訪問(wèn)該下一層頁(yè)面。在一示例中,首先,第一獲取裝置111根據(jù)待抓取數(shù)據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中的首層頁(yè)面URL,如http://d.cn,向該網(wǎng)站的網(wǎng)絡(luò)服務(wù)器發(fā)送該URL指向頁(yè)面的頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)服務(wù)器返回的該首層頁(yè)面,且將其作為當(dāng)前頁(yè)面A ;接著,解析該當(dāng)前頁(yè)面A的標(biāo)記語(yǔ)言文件,從中提取該當(dāng)前頁(yè)面A中包含的全部鏈接al、a2,并隨機(jī)地選擇鏈接al ;隨后,第一獲取裝置111根據(jù)鏈接al,通過(guò)預(yù)定的通信方式,向該網(wǎng)絡(luò)服務(wù)器發(fā)送鏈接al指向下一層頁(yè)面B的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的下一層頁(yè)面B,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面B的鏈接al,用于標(biāo)識(shí)已訪問(wèn)該下一層頁(yè)面B。本領(lǐng)域技術(shù)人員應(yīng)能理解上述獲取下一層頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的獲取下一層頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。接著,判斷裝置112根據(jù)第一預(yù)定規(guī)則,判斷第一獲取裝置111獲取的下一層頁(yè)面是否為目標(biāo)信息頁(yè)面。在此,所述根據(jù)第一預(yù)定規(guī)則的判斷方式包括但不限于:-將下一層頁(yè)面的標(biāo)記語(yǔ)言文件中的頁(yè)面標(biāo)識(shí)信息與預(yù)定的目標(biāo)信息頁(yè)面的頁(yè)面類(lèi)型進(jìn)行比較,以判斷該下一層頁(yè)面是否為目標(biāo)信息頁(yè)面。在一示例中,判斷裝置112提取已獲取的下一層頁(yè)面的標(biāo)記語(yǔ)言文件,如HTML文件,并解析該HTML文件,從而從該HTML文件的預(yù)定位置讀取以獲得注釋信息:〈! -TYPE3—>,該注釋信息與網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中預(yù)定的目標(biāo)信息頁(yè)面的頁(yè)面類(lèi)型相一致,則判斷該下一層頁(yè)面為目標(biāo)信息頁(yè)面。
本領(lǐng)域技術(shù)人員應(yīng)能理解上述判斷目標(biāo)信息頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的判斷目標(biāo)信息頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。隨后,當(dāng)判斷裝置112判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),第一抓取裝置114抓取所述目標(biāo)信息頁(yè)面。在此,所述抓取的方式包括但不限于以下任一項(xiàng):I)抓取目標(biāo)信息頁(yè)面的標(biāo)記語(yǔ)言文件及全部相關(guān)腳本文件,如CSS、JavaScript等;2)抓取目標(biāo)信息頁(yè)面中的文本信息、圖片信息和下載鏈接。在一示例中,當(dāng)下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),第一抓取裝置114解析該目標(biāo)信息頁(yè)面的HTML文件及全部相關(guān)腳本文件,提取該目標(biāo)信息頁(yè)面中的文本信息、圖片信息和下載鏈接信息,并將該些信息存儲(chǔ)于抓取設(shè)備I的存儲(chǔ)數(shù)據(jù)庫(kù)中;在此,所述數(shù)據(jù)庫(kù)包括但不限于關(guān)系數(shù)據(jù)庫(kù)、Key-Value存儲(chǔ)系統(tǒng)或文件系統(tǒng)等。本領(lǐng)域技術(shù)人員應(yīng)能理解上述抓取目標(biāo)信息頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的抓取目標(biāo)信息頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。同時(shí),當(dāng)判斷裝置112判斷所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則第一循環(huán)裝置113將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行第一獲取裝置111與判斷裝置112的操作,直至滿足第一預(yù)定條件。 在此,所述第一預(yù)定條件包括:I)當(dāng)前根頁(yè)面已無(wú)下一層頁(yè)面;2)重復(fù)執(zhí)行第一獲取裝置111與判斷裝置112的操作的次數(shù)超過(guò)預(yù)定次數(shù)。具體地,當(dāng)判斷下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則第一循環(huán)裝置113將該下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行第一獲取裝置111與判斷裝置112的操作,即,首先,根據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,從當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面;隨后,根據(jù)第一預(yù)定規(guī)則,判斷該下一層頁(yè)面是否為目標(biāo)信息頁(yè)面;當(dāng)判斷該下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面;當(dāng)該下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將該下一層頁(yè)面作為當(dāng)前根頁(yè)面,并第一循環(huán)裝置113重復(fù)執(zhí)行上述操作,直至滿足第一預(yù)定條件。在一示例中,如圖2所示,當(dāng)網(wǎng)站的首層頁(yè)面為A,其中包含未訪問(wèn)鏈接al和a2,隨機(jī)地選擇一條未訪問(wèn)鏈接al,該鏈接al指向的下一層頁(yè)面B,且判斷頁(yè)面B不為目標(biāo)信息頁(yè)面時(shí);則第一循環(huán)裝置113將頁(yè)面B作為當(dāng)前根頁(yè)面,并從頁(yè)面B中的全部未訪問(wèn)鏈接bl和b2中,隨機(jī)地選擇一條未訪問(wèn)鏈接bl作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接bl,以獲取鏈接bl指向下一層頁(yè)面C,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面C的鏈接bl,用于標(biāo)識(shí)已訪問(wèn)頁(yè)面C ;接著,根據(jù)第一預(yù)定規(guī)則,判斷下一層頁(yè)面C是否為目標(biāo)信息頁(yè)面,當(dāng)判斷C不為目標(biāo)信息頁(yè)面時(shí),則將C作為當(dāng)前根頁(yè)面,從C的全部未訪問(wèn)鏈接Cl和c2中選擇Cl作為下一層訪問(wèn)的鏈接,從而獲取cl指向下一層頁(yè)面D,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面D的鏈接Cl ;接著第一預(yù)定規(guī)則,判斷下一層頁(yè)面D是否為目標(biāo)信息頁(yè)面;若判斷D為目標(biāo)信息頁(yè)面,則抓取D ;若判斷下一層頁(yè)面D不為目標(biāo)信息頁(yè)面,則將頁(yè)面D作為當(dāng)前根頁(yè)面,且頁(yè)面D為網(wǎng)站的最后一層頁(yè)面,即當(dāng)前根頁(yè)面已無(wú)下一層頁(yè)面,滿足第一預(yù)定條件,則第一循環(huán)裝置113停止上述重復(fù)操作。本領(lǐng)域技術(shù)人員應(yīng)能理解上述重復(fù)執(zhí)行操作的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的重復(fù)執(zhí)行操作的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。當(dāng)滿足第二預(yù)定條件,第二循環(huán)裝置115將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行第一獲取裝置111、判斷裝置112、第一循環(huán)判斷裝置114和第一抓取裝置113的操作。在此,所述第二預(yù)定條件包括以下任一項(xiàng):I)當(dāng)前根頁(yè)面中的全部鏈接均已訪問(wèn);2)當(dāng)前根頁(yè)面中預(yù)定數(shù)目的鏈接已訪問(wèn)。在一示例中,如圖2所示,接上例,當(dāng)當(dāng)前根頁(yè)面為頁(yè)面D時(shí),由于當(dāng)前根頁(yè)面D已無(wú)下一層頁(yè)面,即滿足第二預(yù)定條件中的當(dāng)前根頁(yè)面中的全部鏈接均已訪問(wèn),則第二循環(huán)裝置115將頁(yè)面D的前一根頁(yè)面C作為當(dāng)前根頁(yè)面,從而根據(jù)當(dāng)前根頁(yè)面C的全部鏈接Cl和c2,在已訪問(wèn)列表中進(jìn)行匹配查詢,確定并選擇未訪問(wèn)鏈接c2作為下一層訪問(wèn)的鏈接,以獲取c2指向下一層頁(yè)面E,接著判斷下一層頁(yè)面E是否為目標(biāo)信息頁(yè)面,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面E的鏈接c2 ;隨后,由于當(dāng)前根頁(yè)面C中的全部鏈接cl和c2均已訪問(wèn),即滿足第二預(yù)定條件,則第二循環(huán)裝置115將頁(yè)面C的前一根頁(yè)面B作為當(dāng)前根頁(yè)面,并根據(jù)已訪問(wèn)列表中示出的已訪問(wèn)鏈接,從當(dāng)前根頁(yè)面B中全部鏈接bl和b2中選擇未訪問(wèn)鏈接b2,作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接b2,以獲取鏈接b2指向下一層頁(yè)面F,同時(shí)在已訪問(wèn)列表中記錄指向F的鏈接b2,用于標(biāo)識(shí)已訪問(wèn)下一層頁(yè)面F ;接著,判斷下一層頁(yè)面F是否為目標(biāo)信息頁(yè)面;若判斷F為目標(biāo)信息頁(yè)面,則抓取F ;若判斷F不為目標(biāo)信息頁(yè)面,且根據(jù)該網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息可知F為最后一層,同時(shí)根據(jù)已訪問(wèn)列表可知當(dāng)前根頁(yè)面B中的全部鏈接bl和b2均已訪問(wèn),即滿`足第二預(yù)定條件,則將頁(yè)面B的前一根頁(yè)面A作為當(dāng)前根頁(yè)面,根據(jù)已訪問(wèn)列表中示出的已訪問(wèn)鏈接,從當(dāng)前根頁(yè)面A中全部鏈接al和a2中選擇未訪問(wèn)鏈接a2,作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接a2,以獲取鏈接a2指向下一層頁(yè)面G ;接著,判斷G是否為目標(biāo)信息頁(yè)面,當(dāng)判斷G為目標(biāo)信息頁(yè)面時(shí),則抓取目標(biāo)信息頁(yè)面G。本領(lǐng)域技術(shù)人員應(yīng)能理解上述重復(fù)執(zhí)行操作的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的重復(fù)執(zhí)行操作的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖3示出根據(jù)本發(fā)明另一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖。其中,抓取設(shè)備I還包括第二抓取裝置316 ;第二抓取裝置316根據(jù)第二預(yù)定規(guī)則,由第一抓取裝置314抓取的目標(biāo)信息頁(yè)面的全部鏈接中確定并抓取目標(biāo)下載鏈接。在此,圖3中所示裝置311、312、313、314和315的功能與前面參照?qǐng)D1所描述的裝置111、112、113、114和115的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D3來(lái)對(duì)抓取設(shè)備I確定抓取目標(biāo)下載鏈接的過(guò)程進(jìn)行詳細(xì)描述:在此,所述根據(jù)第二預(yù)定規(guī)則確定并抓取目標(biāo)下載鏈接的方式包括但不限于:-根據(jù)目標(biāo)信息頁(yè)面中鏈接的URL,通過(guò)關(guān)鍵詞匹配的方式,以確定并抓取目標(biāo)下載鏈接。
在一示例中,當(dāng)目標(biāo)信息頁(yè)面為H時(shí),第二抓取裝置316提取H中的全部鏈接hi和h2,接著,根據(jù)鏈接hi和h2的URL,與預(yù)定的關(guān)鍵詞jar”進(jìn)行字符串匹配,從而確定鏈接hi中包含該關(guān)鍵詞,則確定hi為目標(biāo)下載鏈接,進(jìn)而抓取目標(biāo)下載鏈接hi的文本信息及URL。本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定目標(biāo)下載鏈接的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定目標(biāo)下載鏈接的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖4示出根據(jù)本發(fā)明又一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖。其中,第二抓取裝置416包含鏈接確定單元4161和第三抓取單元4162。鏈接確定單元4161根據(jù)第二預(yù)定規(guī)則,從第一抓取裝置414抓取的目標(biāo)信息頁(yè)面包含的全部鏈接中確定待確定下載鏈接;第三抓取單元4162根據(jù)鏈接確定單元4161確定的待確定下載鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,由該等待確定下載鏈接中確定并抓取目標(biāo)下載鏈接。在此,圖4中所示裝置411、412、413、414和415的功能與前面參照?qǐng)D3所描述的裝置311、312、313、314和315的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D4來(lái)對(duì)抓取設(shè)備I確定待確定下載鏈接及確定并抓取目標(biāo)下載鏈接的過(guò)程進(jìn)行詳細(xì)描述:在一示例中,當(dāng)目標(biāo)信息頁(yè)面包含的全部鏈接為h1、h2和h3,鏈接確定單元4161根據(jù)該三條鏈接的URL,與預(yù)定的關(guān)鍵詞sis”與jar”分別進(jìn)行字符串匹配,從而確定hi的URL中包含關(guān)鍵詞sis”且h3的URL中包含關(guān)鍵詞jar”,即確定hi和h2為待確定下載鏈接;接著,第三抓取單元4162根據(jù)待確定下載鏈接hi和h2,獲取該兩個(gè)鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,并讀取該兩個(gè)下載數(shù) 據(jù)包的頭文件以判斷其是否為二進(jìn)制數(shù)據(jù)包,當(dāng)判斷下載鏈接hi對(duì)應(yīng)的下載數(shù)據(jù)包為二進(jìn)制數(shù)據(jù)包時(shí),則確定下載鏈接hi為目標(biāo)下載鏈接,從而抓取該下載鏈接hi的文本信息及URL,并存儲(chǔ)于抓取設(shè)備I的數(shù)據(jù)存儲(chǔ)庫(kù)中。本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定待確定下載鏈接的方式和/或確定并抓取目標(biāo)下載鏈接的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定待確定下載鏈接的方式和/或確定并抓取目標(biāo)下載鏈接的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖5示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖。其中,第一獲取裝置511包括第二獲取單元5111和第三獲取單元5112。第二獲取單元5111根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息及預(yù)定分類(lèi)列表,在所述當(dāng)前根頁(yè)面中的全部鏈接中進(jìn)行查詢,以獲取與所述預(yù)定分類(lèi)列表中的分類(lèi)相匹配的一個(gè)或多個(gè)匹配鏈接;第三獲取單元5112由第二獲取單元5111獲取的一個(gè)或多個(gè)匹配鏈接中選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。在此,圖5中所示裝置512、513、514和515的功能與前面參照?qǐng)D1所描述的裝置112、113、114和115的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D5來(lái)對(duì)抓取設(shè)備I獲取匹配鏈接及獲取下一層頁(yè)面的過(guò)程進(jìn)行詳細(xì)描述:在此,所述目標(biāo)信息頁(yè)面可分別屬于不同的分類(lèi);例如,抓取設(shè)備I在為特定品牌、特定型號(hào)的移動(dòng)終端抓取目標(biāo)信息頁(yè)面和目標(biāo)下載鏈接時(shí),則預(yù)定分類(lèi)列表中示出需要抓取的特定品牌和特定型號(hào)的分類(lèi)標(biāo)識(shí)。在一示例中,首先,當(dāng)待抓取數(shù)據(jù)網(wǎng)站為移動(dòng)終端的應(yīng)用提供網(wǎng)站時(shí),則第二獲取單元5111提取當(dāng)前根頁(yè)面B中包含的全部鏈接al、a2、a3和a4,并根據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息示出的當(dāng)前根頁(yè)面所在層的頁(yè)面中包含鏈接URL的匹配特征信息:http://c-d.cn/wml/ecip/index/ from =.*$,與該全部鏈接al、a2、a3和a4的URL分別進(jìn)行匹配,以確定與該匹配特征信息相匹配的鏈接為al、a3和a4,并提取鏈接al的錨文本的文本信息為“Nokia N8應(yīng)用”,鏈接a3的錨文本的文本信息為“Nokia E7應(yīng)用”且鏈接a4的錨文本的文本信息為“LG 6660應(yīng)用”;接著,第二獲取單元5111根據(jù)預(yù)定分類(lèi)列表中示出的品牌分類(lèi)標(biāo)識(shí)及對(duì)應(yīng)的型號(hào)分類(lèi)標(biāo)識(shí)為“LG 6660”和“Nokia E7”,與鏈接為al、a3和a4的錨文本的文本信息分別進(jìn)行字符串匹配,獲取的與該品牌分類(lèi)標(biāo)識(shí)和該型號(hào)分類(lèi)標(biāo)識(shí)均相匹配的匹配鏈接為a3和a4 ;隨后,第三獲取單元5112根據(jù)已訪問(wèn)列表,由匹配鏈接a3和a4中選擇未訪問(wèn)鏈接a4,并向該網(wǎng)站的網(wǎng)站服務(wù)器發(fā)送獲取鏈接a4指向下一層頁(yè)面的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)站服務(wù)器返回的下一層頁(yè)面。在此,所述錨文本意指錨文本鏈接,即超文本鏈接,其建立了文本關(guān)鍵詞與URL鏈接的關(guān)系。在此,需要說(shuō)明的是,實(shí)施例中的匹配特征信息作為說(shuō)明作用的示例,僅供理解本發(fā)明,不作為實(shí)際應(yīng)用時(shí)的匹配特征信息。如無(wú)特別說(shuō)明,本文中其他地方出現(xiàn)的匹配特征信息的功用與此處相同,為簡(jiǎn)明起見(jiàn),不再贅述。本領(lǐng)域技術(shù)人員應(yīng)能理解上述獲取匹配鏈接的方式和/或獲取下一層頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的獲取匹配鏈接的方式和/或獲取下一層頁(yè)面的方式如可適用于本發(fā) 明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖6示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備示意圖。其中,第一抓取設(shè)備614包括比較單元6141和第三抓取單元6142。當(dāng)判斷裝置612判斷下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),比較單元6141將其與已抓取頁(yè)面信息中進(jìn)行比較;當(dāng)該下一層頁(yè)面不存在于所述已抓取頁(yè)面信息中時(shí),第三抓取單元6142將其抓取為所述目標(biāo)信息頁(yè)面。在此,圖6中所示裝置611、612、613和615的功能與前面參照?qǐng)D1所描述的裝置111、112、113和115的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。在此,所述已抓取頁(yè)面信息包括但不限于:-已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息,如該目標(biāo)信息頁(yè)面的URL或標(biāo)識(shí)ID或標(biāo)識(shí)名稱;-已抓取的目標(biāo)信息頁(yè)面的特征信息;其可存在于已抓取數(shù)據(jù)庫(kù)中,其中,所述已抓取數(shù)據(jù)庫(kù)包括但不限于關(guān)系數(shù)據(jù)庫(kù)、Key-Value存儲(chǔ)系統(tǒng)或文件系統(tǒng)等。在一示例中,當(dāng)判斷下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),比較單元6141解析該目標(biāo)信息頁(yè)面的標(biāo)記語(yǔ)言文件,例如通過(guò)在該目標(biāo)信息頁(yè)面的HTML文件的預(yù)定位置讀取HTML注釋信息;其中,該注釋信息為目標(biāo)信息頁(yè)面的標(biāo)識(shí)ID,接著,根據(jù)該標(biāo)識(shí)ID,在已抓取數(shù)據(jù)庫(kù)存儲(chǔ)的已抓取頁(yè)面信息中進(jìn)行比較,確定該標(biāo)識(shí)ID不存在于已抓取頁(yè)面信息中,則第三抓取單元6142將其抓取為目標(biāo)信息頁(yè)面,并存儲(chǔ)于抓取設(shè)備I的數(shù)據(jù)存儲(chǔ)庫(kù)中,以實(shí)現(xiàn)增量數(shù)據(jù)抓取。優(yōu)選地(參照?qǐng)D6),抓取設(shè)備I還包括更新裝置(未示出),該更新裝置根據(jù)第三抓取單元6142已抓取的目標(biāo)信息頁(yè)面,保存或更新已抓取頁(yè)面信息。具體地,更新裝置將在第三抓取單元6142已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息,寫(xiě)入到已抓取數(shù)據(jù)庫(kù)中,以保存或更新已抓取頁(yè)面信息;若檢測(cè)到該已抓取數(shù)據(jù)庫(kù)未建立,則先行初始化該已抓取數(shù)據(jù)庫(kù),然后將目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息寫(xiě)入到已抓取數(shù)據(jù)庫(kù)中。在一示例中,更新裝置根據(jù)在第三抓取單元6142已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)ID,在已抓取數(shù)據(jù)庫(kù)中插入一條包括該標(biāo)識(shí)ID的數(shù)據(jù)記錄,以保存或更新已抓取頁(yè)面信肩、O本領(lǐng)域技術(shù)人員應(yīng)能理解上述保存或更新已抓取頁(yè)面信息的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的保存或更新已抓取頁(yè)面信息的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。圖7示出根據(jù)本發(fā)明另一個(gè)方面的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。在此,抓取設(shè)備I為網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。在此,抓取設(shè)備I與網(wǎng)站的網(wǎng)絡(luò)設(shè)備之間可通過(guò)任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP 、LTE、WIMAX的移動(dòng)通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無(wú)線傳輸方式。以下參照?qǐng)D7來(lái)對(duì)抓取設(shè)備I抓取目標(biāo)信息頁(yè)面的過(guò)程進(jìn)行詳細(xì)描述:首先,在步驟S701中,抓取設(shè)備I根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。在此,所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息包括但不限于以下任一項(xiàng):I)待抓取數(shù)據(jù)網(wǎng)站的首層頁(yè)面的統(tǒng)一資源定位符(URL);2)待抓取數(shù)據(jù)網(wǎng)站的層數(shù)信息,即首層頁(yè)面(第一層)至目標(biāo)信息頁(yè)面(最后一層)的層數(shù);3)待抓取數(shù)據(jù)網(wǎng)站每層頁(yè)面中包含鏈接的匹配特征信息;4)待抓取數(shù)據(jù)網(wǎng)站每層頁(yè)面的頁(yè)面標(biāo)識(shí)信息;其中,所述頁(yè)面標(biāo)識(shí)信息可位于頁(yè)面的標(biāo)記語(yǔ)言文件的自定義標(biāo)簽、注釋等;在此,所述標(biāo)記語(yǔ)言文件包括但不限于:a)超文本標(biāo)記語(yǔ)言(HTML)文件;b)可擴(kuò)展超文本標(biāo)記語(yǔ)言(XHTML)文件;c)可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件。具體地,當(dāng)抓取設(shè)備I首次訪問(wèn)待抓取數(shù)據(jù)網(wǎng)站時(shí),首先,在步驟S701中,抓取設(shè)備I根據(jù)該網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中示出的首層頁(yè)面URL,通過(guò)預(yù)定的通信方式,如http、https等通信協(xié)議,向該網(wǎng)站的網(wǎng)絡(luò)設(shè)備,如網(wǎng)絡(luò)服務(wù)器,發(fā)送首層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的首層頁(yè)面;接著,抓取設(shè)備I將該網(wǎng)站的首層頁(yè)面作為當(dāng)前頁(yè)面,并提取該當(dāng)前頁(yè)面中包含的全部鏈接,并從其中選擇一個(gè)未訪問(wèn)鏈接;其中,由于抓取設(shè)備I首次訪問(wèn)該網(wǎng)站,故該當(dāng)前頁(yè)面中的全部鏈接均為未訪問(wèn)鏈接;隨后,抓取設(shè)備I根據(jù)已被選擇的該未訪問(wèn)鏈接,通過(guò)預(yù)定的通信方式,向該網(wǎng)絡(luò)服務(wù)器發(fā)送該未訪問(wèn)鏈接指向下一層頁(yè)面的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的下一層頁(yè)面,同時(shí)在已訪問(wèn)列表中將指向該下一層頁(yè)面的該未訪問(wèn)鏈接記錄為已訪問(wèn)鏈接,用于標(biāo)識(shí)已訪問(wèn)該下一層頁(yè)面。在一示例中,首先,在步驟S701中,抓取設(shè)備I根據(jù)待抓取數(shù)據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中的首層頁(yè)面URLJn http://d.cn,向該網(wǎng)站的網(wǎng)絡(luò)服務(wù)器發(fā)送該URL指向頁(yè)面的頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)服務(wù)器返回的該首層頁(yè)面,且將其作為當(dāng)前頁(yè)面A ;接著,解析該當(dāng)前頁(yè)面A的標(biāo)記語(yǔ)言文件,從中提取該當(dāng)前頁(yè)面A中包含的全部鏈接al、a2,并隨機(jī)地選擇鏈接al ;隨后,抓取設(shè)備I根據(jù)鏈接al,通過(guò)預(yù)定的通信方式,向該網(wǎng)絡(luò)服務(wù)器發(fā)送鏈接al指向下一層頁(yè)面B的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)絡(luò)設(shè)備返回的下一層頁(yè)面B,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面B的鏈接al,用于標(biāo)識(shí)已訪問(wèn)該下一層頁(yè)面B。本領(lǐng)域技術(shù)人員應(yīng)能理解上述獲取下一層頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的獲取下一層頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。接著,在步驟S702中,抓取設(shè)備I根據(jù)第一預(yù)定規(guī)則,判斷其獲取的下一層頁(yè)面是否為目標(biāo)信息頁(yè)面。在此,所述根據(jù)第一預(yù)定規(guī)則的判斷方式包括但不限于:-將下一層頁(yè)面的標(biāo)記語(yǔ)言文件中的頁(yè)面標(biāo)識(shí)信息與預(yù)定的目標(biāo)信息頁(yè)面的頁(yè)面類(lèi)型進(jìn)行比較,以判斷該下一層頁(yè)面是否為目標(biāo)信息頁(yè)面。在一示例中,在步驟S702中,抓取設(shè)備I提取已獲取的下一層頁(yè)面的標(biāo)記語(yǔ)言文件,如HTML文件,并 解析該HTML文件,從而從該HTML文件的預(yù)定位置讀取以獲得注釋信息:〈! -TYPE 3—>,該注釋信息與網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息中預(yù)定的目標(biāo)信息頁(yè)面的頁(yè)面類(lèi)型相一致,則判斷該下一層頁(yè)面為目標(biāo)信息頁(yè)面。本領(lǐng)域技術(shù)人員應(yīng)能理解上述判斷目標(biāo)信息頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的判斷目標(biāo)信息頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。隨后,當(dāng)抓取設(shè)備I判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),在步驟S704中,抓取設(shè)備I抓取所述目標(biāo)信息頁(yè)面。在此,所述抓取的方式包括但不限于以下任一項(xiàng):I)抓取目標(biāo)信息頁(yè)面的標(biāo)記語(yǔ)言文件及全部相關(guān)腳本文件,如CSS、JavaScript等;2)抓取目標(biāo)信息頁(yè)面中的文本信息、圖片信息和下載鏈接。在一示例中,當(dāng)下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),在步驟S704中,抓取設(shè)備I解析該目標(biāo)信息頁(yè)面的HTML文件及全部相關(guān)腳本文件,提取該目標(biāo)信息頁(yè)面中的文本信息、圖片信息和下載鏈接信息,并將該些信息存儲(chǔ)于抓取設(shè)備I的存儲(chǔ)數(shù)據(jù)庫(kù)中;在此,所述數(shù)據(jù)庫(kù)包括但不限于關(guān)系數(shù)據(jù)庫(kù)、Key-Value存儲(chǔ)系統(tǒng)或文件系統(tǒng)等。本領(lǐng)域技術(shù)人員應(yīng)能理解上述抓取目標(biāo)信息頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的抓取目標(biāo)信息頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。同時(shí),當(dāng)抓取設(shè)備I判斷所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則在步驟S703中,抓取設(shè)備I將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行抓取設(shè)備I在步驟S701和步驟S702中的操作,直至滿足第一預(yù)定條件。在此,所述第一預(yù)定條件包括:I)當(dāng)前根頁(yè)面已無(wú)下一層頁(yè)面;2)重復(fù)執(zhí)行在步驟S701和步驟S702中的操作的次數(shù)超過(guò)預(yù)定次數(shù)。具體地,當(dāng)判斷下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則在步驟S703中,抓取設(shè)備I將該下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行其在步驟S701和步驟S702中的操作,即,首先,根據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,從當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面;隨后,根據(jù)第一預(yù)定規(guī)則,判斷該下一層頁(yè)面是否為目標(biāo)信息頁(yè)面;當(dāng)判斷該下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面;當(dāng)該下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將該下一層頁(yè)面作為當(dāng)前根頁(yè)面,并抓取設(shè)備I重復(fù)執(zhí)行上述操作,直至滿足第一預(yù)定條件。在一示例中,如圖2所示,當(dāng)網(wǎng)站的首層頁(yè)面為A,其中包含未訪問(wèn)鏈接al和a2,隨機(jī)地選擇一條未訪問(wèn)鏈接al,該鏈接al指向的下一層頁(yè)面B,且判斷頁(yè)面B不為目標(biāo)信息頁(yè)面時(shí);則在步驟S703中,抓取設(shè)備I將頁(yè)面B作為當(dāng)前根頁(yè)面,并從頁(yè)面B中的全部未訪問(wèn)鏈接bl和b2中,隨機(jī)地選擇一條未訪問(wèn)鏈接bl作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接bl,以獲取鏈接bl指向下一層頁(yè)面C,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面C的鏈接bl,用于標(biāo)識(shí)已訪問(wèn)頁(yè)面C ;接著,根據(jù)第一預(yù)定規(guī)則,判斷下一層頁(yè)面C是否為目標(biāo)信息頁(yè)面,當(dāng)判斷C不為目標(biāo)信息頁(yè)面時(shí),則將C作為當(dāng)前根頁(yè)面,從C的全部未訪問(wèn)鏈接Cl和c2中選擇Cl作為下一層訪問(wèn)的鏈接·,從而獲取Cl指向下一層頁(yè)面D,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面D的鏈接Cl ;接著第一預(yù)定規(guī)則,判斷下一層頁(yè)面D是否為目標(biāo)信息頁(yè)面;若判斷D為目標(biāo)信息頁(yè)面,則抓取D ;若判斷下一層頁(yè)面D不為目標(biāo)信息頁(yè)面,則將頁(yè)面D作為當(dāng)前根頁(yè)面,且頁(yè)面D為網(wǎng)站的最后一層頁(yè)面,即當(dāng)前根頁(yè)面已無(wú)下一層頁(yè)面,滿足第一預(yù)定條件,則抓取設(shè)備I停止上述重復(fù)操作。本領(lǐng)域技術(shù)人員應(yīng)能理解上述重復(fù)執(zhí)行操作的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的重復(fù)執(zhí)行操作的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。當(dāng)滿足第二預(yù)定條件,在步驟S705中,抓取設(shè)備I將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行其在步驟S701、步驟S702、步驟S703和步驟S704中的操作。在此,所述第二預(yù)定條件包括以下任一項(xiàng):I)當(dāng)前根頁(yè)面中的全部鏈接均已訪問(wèn);2)當(dāng)前根頁(yè)面中預(yù)定數(shù)目的鏈接已訪問(wèn)。在一示例中,如圖2所示,接上例,當(dāng)當(dāng)前根頁(yè)面為頁(yè)面D時(shí),由于當(dāng)前根頁(yè)面D已無(wú)下一層頁(yè)面,即滿足第二預(yù)定條件中的當(dāng)前根頁(yè)面中的全部鏈接均已訪問(wèn),則在步驟S705中,抓取設(shè)備I將頁(yè)面D的前一根頁(yè)面C作為當(dāng)前根頁(yè)面,從而根據(jù)當(dāng)前根頁(yè)面C的全部鏈接Cl和c2,在已訪問(wèn)列表中進(jìn)行匹配查詢,確定并選擇未訪問(wèn)鏈接c2作為下一層訪問(wèn)的鏈接,以獲取c2指向下一層頁(yè)面E,接著判斷下一層頁(yè)面E是否為目標(biāo)信息頁(yè)面,同時(shí)在已訪問(wèn)列表中記錄指向頁(yè)面E的鏈接c2 ;隨后,由于當(dāng)前根頁(yè)面C中的全部鏈接cl和c2均已訪問(wèn),即滿足第二預(yù)定條件,則抓取設(shè)備I將頁(yè)面C的前一根頁(yè)面B作為當(dāng)前根頁(yè)面,并根據(jù)已訪問(wèn)列表中示出的已訪問(wèn)鏈接,從當(dāng)前根頁(yè)面B中全部鏈接bl和b2中選擇未訪問(wèn)鏈接b2,作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接b2,以獲取鏈接b2指向下一層頁(yè)面F,同時(shí)在已訪問(wèn)列表中記錄指向F的鏈接b2,用于標(biāo)識(shí)已訪問(wèn)下一層頁(yè)面F ;接著,判斷下一層頁(yè)面F是否為目標(biāo)信息頁(yè)面;若判斷F為目標(biāo)信息頁(yè)面,則抓取F ;若判斷F不為目標(biāo)信息頁(yè)面,且根據(jù)該網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息可知F為最后一層,同時(shí)根據(jù)已訪問(wèn)列表可知當(dāng)前根頁(yè)面B中的全部鏈接bl和b2均已訪問(wèn),即滿足第二預(yù)定條件,則將頁(yè)面B的前一根頁(yè)面A作為當(dāng)前根頁(yè)面,根據(jù)已訪問(wèn)列表中示出的已訪問(wèn)鏈接,從當(dāng)前根頁(yè)面A中全部鏈接al和a2中選擇未訪問(wèn)鏈接a2,作為下一層訪問(wèn)的鏈接,從而根據(jù)鏈接a2,以獲取鏈接a2指向下一層頁(yè)面G ;接著,判斷G是否為目標(biāo)信息頁(yè)面,當(dāng)判斷G為目標(biāo)信息頁(yè)面時(shí),則抓取目標(biāo)信息頁(yè)面G0本領(lǐng)域技術(shù)人員應(yīng)能理解上述重復(fù)執(zhí)行操作的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的重復(fù)執(zhí)行操作的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖8示出根據(jù)本發(fā)明另一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。其中,該過(guò)程還包括步驟S806 ;在步驟S806中,抓取設(shè)備I根據(jù)第二預(yù)定規(guī)則,由其抓取的目標(biāo)信息頁(yè)面的全部鏈接中確定并抓取目標(biāo)下載鏈接。在此,圖8中所示的抓取設(shè)備I在步驟S801、步驟S802、步驟S803、步驟S804和步驟S805中的功能與前面參照?qǐng)D7所描述的抓取設(shè)備I在步驟S701、步驟S702、步驟S703、步驟S704和步驟S705中的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D8來(lái)對(duì)抓取設(shè)備I確定抓取目標(biāo)下載鏈接的過(guò)程進(jìn)行詳細(xì)描述:
在此,所述根據(jù)第二預(yù)定規(guī)則確定并抓取目標(biāo)下載鏈接的方式包括但不限于:-根據(jù)目標(biāo)信息頁(yè)面中鏈接的URL,通過(guò)關(guān)鍵詞匹配的方式,以確定并抓取目標(biāo)下載鏈接。在一示例中,當(dāng)目標(biāo)信息頁(yè)面為H時(shí),在步驟S806中,抓取設(shè)備I提取H中的全部鏈接hi和h2,接著,根據(jù)鏈接hi和h2的URL,與預(yù)定的關(guān)鍵詞jar”進(jìn)行字符串匹配,從而確定鏈接hi中包含該關(guān)鍵詞,則確定hi為目標(biāo)下載鏈接,進(jìn)而抓取目標(biāo)下載鏈接hi的文本信息及URL。本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定目標(biāo)下載鏈接的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定目標(biāo)下載鏈接的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖9示出根據(jù)本發(fā)明又一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。其中,該過(guò)程包括步驟S9061和步驟S9062。在步驟S9061中,抓取設(shè)備I根據(jù)第二預(yù)定規(guī)則,從其在步驟S904中抓取的目標(biāo)信息頁(yè)面包含的全部鏈接中確定待確定下載鏈接;在步驟S9062中,抓取設(shè)備I根據(jù)其在步驟S9061中確定的待確定下載鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,由該等待確定下載鏈接中確定并抓取目標(biāo)下載鏈接。在此,圖9中所示抓取設(shè)備I在步驟S901、步驟S902、步驟S903、步驟S904和步驟S905中的功能與前面參照?qǐng)D8所描述的抓取設(shè)備I在步驟S801、步驟S802、步驟S803、步驟S804和步驟S805中的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D9來(lái)對(duì)抓取設(shè)備I確定待確定下載鏈接及確定并抓取目標(biāo)下載鏈接的過(guò)程進(jìn)行詳細(xì)描述:在一示例中,當(dāng)目標(biāo)信息頁(yè)面包含的全部鏈接為hl、h2和h3,在步驟S9061中,抓取設(shè)備I根據(jù)該三條鏈接的URL,與預(yù)定的關(guān)鍵詞sis”與jar”分別進(jìn)行字符串匹配,從而確定hi的URL中包含關(guān)鍵詞sis”且h3的URL中包含關(guān)鍵詞jar”,即確定hi和h2為待確定下載鏈接;接著,在步驟S9062中,抓取設(shè)備I根據(jù)待確定下載鏈接hi和h2,獲取該兩個(gè)鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,并讀取該兩個(gè)下載數(shù)據(jù)包的頭文件以判斷其是否為二進(jìn)制數(shù)據(jù)包,當(dāng)判斷下載鏈接hi對(duì)應(yīng)的下載數(shù)據(jù)包為二進(jìn)制數(shù)據(jù)包時(shí),則確定下載鏈接hi為目標(biāo)下載鏈接,從而抓取該下載鏈接hi的文本信息及URL,并存儲(chǔ)于抓取設(shè)備I的數(shù)據(jù)存儲(chǔ)庫(kù)中。本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定待確定下載鏈接的方式和/或確定并抓取目標(biāo)下載鏈接的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定待確定下載鏈接的方式和/或確定并抓取目標(biāo)下載鏈接的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。圖10示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。其中,該過(guò)程包括步驟SlOOll和步驟S10012。在步驟SlOOll中,抓取設(shè)備I根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息及預(yù)定分類(lèi)列表,在所述當(dāng)前根頁(yè)面中的全部鏈接中進(jìn)行查詢,以獲取與所述預(yù)定分類(lèi)列表中的分類(lèi)相匹配的一個(gè)或多個(gè)匹配鏈接;在步驟S10012中,抓取設(shè)備I由其在步驟SlOOll中獲取的一個(gè)或多個(gè)匹配鏈接中選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。在此,圖10中所示抓取設(shè)備I在步驟S1002、步驟S1003、步驟S1004和步驟S1005的功能與前面參照?qǐng)D7所 描述的抓取設(shè)備I在步驟S702、步驟S703、步驟S704和步驟S705的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。以下參照?qǐng)D10來(lái)對(duì)抓取設(shè)備I獲取匹配鏈接及獲取下一層頁(yè)面的過(guò)程進(jìn)行詳細(xì)描述:在此,所述目標(biāo)信息頁(yè)面可分別屬于不同的分類(lèi);例如,抓取設(shè)備I在為特定品牌、特定型號(hào)的移動(dòng)終端抓取目標(biāo)信息頁(yè)面和目標(biāo)下載鏈接時(shí),則預(yù)定分類(lèi)列表中示出需要抓取的特定品牌和特定型號(hào)的分類(lèi)標(biāo)識(shí)。在一示例中,首先,當(dāng)待抓取數(shù)據(jù)網(wǎng)站為移動(dòng)終端的應(yīng)用提供網(wǎng)站時(shí),則在步驟SlOOll中,抓取設(shè)備I提取當(dāng)前根頁(yè)面B中包含的全部鏈接al、a2、a3和a4,并根據(jù)網(wǎng)站的網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息示出的當(dāng)前根頁(yè)面所在層的頁(yè)面中包含鏈接URL的匹配特征信息:http://c-d.cn/wml/ecip/index/ from =.*$,與該全部鏈接al、a2、a3和a4的URL分別進(jìn)行匹配,以確定與該匹配特征信息相匹配的鏈接為al、a3和a4,并提取鏈接al的錨文本的文本信息為“Nokia N8應(yīng)用”,鏈接a3的錨文本的文本信息為“Nokia E7應(yīng)用”且鏈接a4的錨文本的文本信息為“LG 6660應(yīng)用”;接著,在步驟S10012中,抓取設(shè)備I根據(jù)預(yù)定分類(lèi)列表中示出的品牌分類(lèi)標(biāo)識(shí)及對(duì)應(yīng)的型號(hào)分類(lèi)標(biāo)識(shí)為“LG 6660”和“Nokia E7”,與鏈接為al、a3和a4的錨文本的文本信息分別進(jìn)行字符串匹配,獲取的與該品牌分類(lèi)標(biāo)識(shí)和該型號(hào)分類(lèi)標(biāo)識(shí)均相匹配的匹配鏈接為a3和a4 ;隨后,抓取設(shè)備I根據(jù)已訪問(wèn)列表,由匹配鏈接a3和a4中選擇未訪問(wèn)鏈接a4,并向該網(wǎng)站的網(wǎng)站服務(wù)器發(fā)送獲取鏈接a4指向下一層頁(yè)面的下一層頁(yè)面獲取請(qǐng)求,并接收該網(wǎng)站服務(wù)器返回的下一層頁(yè)面。在此,所述錨文本意指錨文本鏈接,即超文本鏈接,其建立了文本關(guān)鍵詞與URL鏈接的關(guān)系。在此,需要說(shuō)明的是,實(shí)施例中的匹配特征信息作為說(shuō)明作用的示例,僅供理解本發(fā)明,不作為實(shí)際應(yīng)用時(shí)的匹配特征信息。如無(wú)特別說(shuō)明,本文中其他地方出現(xiàn)的匹配特征信息的功用與此處相同,為簡(jiǎn)明起見(jiàn),不再贅述。本領(lǐng)域技術(shù)人員應(yīng)能理解上述獲取匹配鏈接的方式和/或獲取下一層頁(yè)面的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的獲取匹配鏈接的方式和/或獲取下一層頁(yè)面的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并以引用方式包含于此。
圖11示出根據(jù)本發(fā)明再一優(yōu)選實(shí)施例的用于抓取網(wǎng)站數(shù)據(jù)的方法流程圖。其中,該過(guò)程還包括步驟S11041和步驟S11042。當(dāng)抓取設(shè)備在步驟S1102中判斷下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),在步驟S11041中,抓取設(shè)備I將其與已抓取頁(yè)面信息中進(jìn)行比較;當(dāng)該下一層頁(yè)面不存在于所述已抓取頁(yè)面信息中時(shí),在步驟S11042中,抓取設(shè)備I將其抓取為所述目標(biāo)信息頁(yè)面。在此,圖11中所示抓取設(shè)備I在步驟S1101、步驟S1102、步驟S1103和步驟S1105的功能與前面參照?qǐng)D7所描述的抓取設(shè)備I在步驟S701、步驟S702、步驟S703和步驟S705的內(nèi)容相同,為簡(jiǎn)明起見(jiàn),將其以引用方式包含于此,而不做贅述。在此,所述已抓取頁(yè)面信息包括但不限于:-已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息,如該目標(biāo)信息頁(yè)面的URL或標(biāo)識(shí)ID或標(biāo)識(shí)名稱;-已抓取的目標(biāo)信息頁(yè)面的特征信息;其可存在于已抓取數(shù)據(jù)庫(kù)中,其中,所述已抓取數(shù)據(jù)庫(kù)包括但不限于關(guān)系數(shù)據(jù)庫(kù)、Key-Value存儲(chǔ)系統(tǒng)或文件系統(tǒng)等。在一示例中,當(dāng)判斷下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),在步驟S11041中,抓取設(shè)備I解析該目標(biāo)信息頁(yè)面的標(biāo)記語(yǔ)言文件,例如通過(guò)在該目標(biāo)信息頁(yè)面的HTML文件的預(yù)定位置讀取HTML注釋信息;其中,該注釋信息為目標(biāo)信息頁(yè)面的標(biāo)識(shí)ID,接著,根據(jù)該標(biāo)識(shí)ID,在已抓取數(shù)據(jù)庫(kù)存儲(chǔ)的已抓取頁(yè)面信息中進(jìn)行比較,確定該標(biāo)識(shí)ID不存在于已抓取頁(yè)面信息中,則在步驟SI 1042中,抓取設(shè)備I將其抓取為目標(biāo)信息頁(yè)面,并存儲(chǔ)于抓取設(shè)備I的數(shù)據(jù)存儲(chǔ)庫(kù)中,以實(shí)現(xiàn)增量數(shù)據(jù)抓取。優(yōu)選地(參照?qǐng)D11),該過(guò)程還包括步驟SI 107 (未示出),在步驟SI 107中,抓取設(shè)備I根據(jù)其在步驟S11042中已抓取的目標(biāo)信息頁(yè)面,保存或更新已抓取頁(yè)面信息。具體地,在步驟SI 107中,抓取設(shè)備I將其在步驟SI 1042中已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息,寫(xiě)入到已抓取數(shù)據(jù)庫(kù)中,以保存或更新已抓取頁(yè)面信息;若檢測(cè)到該已抓取數(shù)據(jù)庫(kù)未建立,則先行初始化該已抓取數(shù)據(jù)庫(kù),然后將目標(biāo)信息頁(yè)面的標(biāo)識(shí)信息寫(xiě)入到已抓取數(shù)據(jù)庫(kù)中。 在一示例中,在步驟SI 107中,抓取設(shè)備I根據(jù)其已抓取的目標(biāo)信息頁(yè)面的標(biāo)識(shí)ID,在已抓取數(shù)據(jù)庫(kù)中插入一條包括該標(biāo)識(shí)ID的數(shù)據(jù)記錄,以保存或更新已抓取頁(yè)面信息本領(lǐng)域技術(shù)人員應(yīng)能理解上述保存或更新已抓取頁(yè)面信息的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的保存或更新已抓取頁(yè)面信息的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。需要注意的是,本發(fā)明可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專(zhuān)用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類(lèi)似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本發(fā)明的軟件程序可以通過(guò)處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本發(fā)明的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤(pán)及類(lèi)似設(shè)備。另外,本發(fā)明的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此夕卜,顯然“包括” 一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定的順序。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的用于抓取網(wǎng)站數(shù)據(jù)的方法,該方法包括以下步驟: a根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面; b根據(jù)第一預(yù)定規(guī)則,判斷所述下一層頁(yè)面是否為目標(biāo)信息頁(yè)面; Cl當(dāng)所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a和b,直至滿足第一預(yù)定條件; c2當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面; 其中,該方法還包括: -當(dāng)滿足第二預(yù)定條件,將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a、b、Cl和 c20
2.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括: y根據(jù)第二預(yù)定規(guī)則,由所述目標(biāo)信息頁(yè)面的全部鏈接中確定并抓取目標(biāo)下載鏈接。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述步驟I包括: -根據(jù)第二預(yù)定規(guī)則,從所述目標(biāo)信息頁(yè)面包含的全部鏈接中確定待確定下載鏈接; -根據(jù)所述待確定下載鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,由所述待確定下載鏈接中確定并抓取所述目標(biāo)下載鏈接。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,所述步驟a包括: -根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息及預(yù)定分類(lèi)列表,在所述當(dāng)前根頁(yè)面中的全部鏈接中進(jìn)行查詢,以獲取與所述預(yù)定分類(lèi)列表中的分類(lèi)相匹配的一個(gè)或多個(gè)匹配鏈接; -由所述一個(gè)或多個(gè)匹配鏈接中選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述步驟c2包括: -當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),將其與已抓取頁(yè)面信息中進(jìn)行比較; -當(dāng)該下一層頁(yè)面不存在于所述已抓取頁(yè)面信息中時(shí),將其抓取為所述目標(biāo)信息頁(yè)面。
6.根據(jù)權(quán)利要求5所述的方法,其中,該方法還包括: -根據(jù)已抓取的所述目標(biāo)信息頁(yè)面,保存或更新所述已抓取頁(yè)面信息。
7.一種用于抓取網(wǎng)站數(shù)據(jù)的設(shè)備,該方法設(shè)備包括: 第一獲取裝置,用于根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面; 判斷裝置,用于根據(jù)第一預(yù)定規(guī)則,判斷所述下一層頁(yè)面是否為目標(biāo)信息頁(yè)面; 第一循環(huán)裝置,用于當(dāng)判斷所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述第一獲取裝置與所述判斷裝置的操作,直至滿足第一預(yù)定條件; 其中,該設(shè)備還包括: 第一抓取裝置,用于當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面; 其中,所述設(shè)備還包括: 第二循環(huán)裝置,用于當(dāng)滿足第二預(yù)定條件,將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述第一獲取裝置、所述判斷裝置、所述第一循環(huán)判斷裝置和所述第一抓取裝置的操作。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其中,所述設(shè)備還包括:第二抓取裝置,用于根據(jù)第二預(yù)定規(guī)則,由所述目標(biāo)信息頁(yè)面的全部鏈接中確定并抓取目標(biāo)下載鏈接。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其中,所述第二抓取裝置包括: 鏈接確定單元,用于根據(jù)第二預(yù)定規(guī)則,從所述目標(biāo)信息頁(yè)面包含的全部鏈接中確定待確定下載鏈接; 第三抓取單元,用于根據(jù)所述待確定下載鏈接對(duì)應(yīng)的下載數(shù)據(jù)包,由所述待確定下載鏈接中確定并抓取所述目標(biāo)下載鏈接。
10.根據(jù)權(quán)利要求7至9中任一項(xiàng)所述的設(shè)備,其中,所述第一獲取裝置包括: 第二獲取單元,用于根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息及預(yù)定分類(lèi)列表,在所述當(dāng)前根頁(yè)面中的全部鏈接中進(jìn)行查詢,以獲取與所述預(yù)定分類(lèi)列表中的分類(lèi)相匹配的一個(gè)或多個(gè)匹配鏈接; 第三獲取單元,用于由所述一個(gè)或多個(gè)匹配鏈接中選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面。
11.根據(jù)權(quán)利要求7至10中任一項(xiàng)所述的設(shè)備,其中,所述第一抓取設(shè)備包括: 比較單元,用于當(dāng) 判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),將其與已抓取頁(yè)面信息中進(jìn)行比較; 第三抓取單元,用于當(dāng)該下一層頁(yè)面不存在于所述已抓取頁(yè)面信息中時(shí),將其抓取為所述目標(biāo)信息頁(yè)面。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,該設(shè)備還包括: 更新裝置,用于根據(jù)已抓取的所述目標(biāo)信息頁(yè)面,保存或更新所述已抓取頁(yè)面信息。
全文摘要
本發(fā)明的目的是提供一種用于抓取網(wǎng)站數(shù)據(jù)的方法與設(shè)備。首先,根據(jù)所述網(wǎng)站拓?fù)浣Y(jié)構(gòu)信息,由當(dāng)前根頁(yè)面中的全部鏈接選擇一個(gè)未訪問(wèn)鏈接,并獲取其指向的下一層頁(yè)面;接著,根據(jù)第一預(yù)定規(guī)則,判斷所述下一層頁(yè)面是否為目標(biāo)信息頁(yè)面;當(dāng)所述下一層頁(yè)面不為目標(biāo)信息頁(yè)面,則將所述下一層頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a和b,直至滿足第一預(yù)定條件;當(dāng)判斷所述下一層頁(yè)面為目標(biāo)信息頁(yè)面時(shí),抓取所述目標(biāo)信息頁(yè)面;當(dāng)滿足第二預(yù)定條件,將前一根頁(yè)面作為當(dāng)前根頁(yè)面,重復(fù)執(zhí)行所述步驟a、b、c1和c2。與現(xiàn)有技術(shù)相比,本發(fā)明采用深度優(yōu)先遍歷的方式,實(shí)現(xiàn)了抓取整個(gè)網(wǎng)站的目標(biāo)數(shù)據(jù),保證了對(duì)目標(biāo)數(shù)據(jù)抓取的準(zhǔn)確性,提高數(shù)據(jù)抓取的效率。
文檔編號(hào)G06F17/30GK103246675SQ201210030588
公開(kāi)日2013年8月14日 申請(qǐng)日期2012年2月10日 優(yōu)先權(quán)日2012年2月10日
發(fā)明者江軍, 余慶生 申請(qǐng)人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司