一種目標(biāo)頁(yè)面內(nèi)容抓取方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)頁(yè)技術(shù)領(lǐng)域,具體涉及一種目標(biāo)頁(yè)面內(nèi)容抓取方法和裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的用戶通過(guò)互聯(lián)網(wǎng)獲取各種信息。而在互聯(lián)網(wǎng)中,網(wǎng)站很多,并且網(wǎng)站內(nèi)部的網(wǎng)頁(yè)更為龐大,用戶如果想要了解某方面的內(nèi)容,可能需要訪問(wèn)多個(gè)網(wǎng)站的多個(gè)網(wǎng)頁(yè),才能瀏覽到其需要的內(nèi)容。
[0003]針對(duì)上述情況,為了方便用戶對(duì)目標(biāo)頁(yè)面內(nèi)容的訪問(wèn),產(chǎn)生了通過(guò)一些采集其將各個(gè)網(wǎng)站的某方面的目標(biāo)頁(yè)面內(nèi)容進(jìn)行抓取,然后用戶即可直接瀏覽采集到的內(nèi)容。用戶不用逐個(gè)訪問(wèn)頁(yè)面瀏覽目標(biāo)頁(yè)面內(nèi)容。
[0004]但是,在先技術(shù)中,通常使用的采集工具如八爪魚(yú)采集器、狂人采集器、CMS系統(tǒng)(Content Management System,內(nèi)容管理系統(tǒng))采集模塊等,其采用的目標(biāo)頁(yè)面內(nèi)容抓取時(shí),需要預(yù)先設(shè)定對(duì)html文檔代碼的匹配方式,該匹配方式均是通過(guò)流量html文檔代碼確定,匹配方式大致包括兩種:
[0005]其一是配置字符串匹配方式,該種方式是直接對(duì)網(wǎng)頁(yè)文檔的目標(biāo)元素的開(kāi)始和結(jié)束字符進(jìn)行匹配,但是實(shí)際中,網(wǎng)頁(yè)頁(yè)面隨文章變動(dòng)大,內(nèi)容區(qū)域復(fù)雜,單純依賴簡(jiǎn)單的字符串匹配很難準(zhǔn)確區(qū)分目標(biāo)元素信息特點(diǎn),很難對(duì)抓取后的結(jié)果進(jìn)行解析。
[0006]其二是配置絕對(duì)路徑的匹配方式,該種方式是從網(wǎng)頁(yè)文檔的body開(kāi)始進(jìn)行匹配,該種方式可以較為準(zhǔn)確的抓取到目標(biāo)頁(yè)面內(nèi)容,但是由于網(wǎng)頁(yè)頁(yè)面對(duì)JS腳本存在延遲加載的因素,并且抓取腳本沒(méi)有瀏覽器內(nèi)核的解析功能,只能獲取初始的html代碼,無(wú)法執(zhí)行html代碼中的JS腳本,因而抓取腳本和實(shí)際瀏覽器獲取的目標(biāo)頁(yè)面內(nèi)容具有差異,導(dǎo)致絕對(duì)路徑不統(tǒng)一而抓取過(guò)程無(wú)法正常執(zhí)行。
【發(fā)明內(nèi)容】
[0007]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的目標(biāo)頁(yè)面內(nèi)容抓取裝置和相應(yīng)的目標(biāo)頁(yè)面內(nèi)容抓取方法。
[0008]依據(jù)本發(fā)明的一個(gè)方面,提供了一種目標(biāo)頁(yè)面內(nèi)容抓取方法,包括:
[0009]獲取目標(biāo)頁(yè)面的網(wǎng)頁(yè)文檔;
[0010]根據(jù)針對(duì)所述目標(biāo)頁(yè)面的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn);其中,所述相對(duì)路徑信息基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建;
[0011 ] 從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容。
[0012]優(yōu)選的,所述基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建的相對(duì)路徑信息包括:
[0013]由至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽與屬性構(gòu)建的相對(duì)路徑信息;
[0014]和/或者,由至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽與屬性和至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽,以XPATH形式構(gòu)建的相對(duì)路徑信息。
[0015]優(yōu)選的,所述獲取目標(biāo)頁(yè)面的網(wǎng)頁(yè)文檔包括:
[0016]根據(jù)列表頁(yè)面的鏈接地址,獲取列表頁(yè)面的網(wǎng)頁(yè)文檔。
[0017]優(yōu)選的,所述根據(jù)針對(duì)所述目標(biāo)頁(yè)面的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn),包括:
[0018]根據(jù)針對(duì)列表頁(yè)面中列表區(qū)域的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn)。
[0019]優(yōu)選的,所述從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容包括:
[0020]從列表頁(yè)面的列表區(qū)域?qū)?yīng)的文檔對(duì)象模型節(jié)點(diǎn)標(biāo)簽中,提取各個(gè)資源頁(yè)面的鏈接地址。
[0021]優(yōu)選的,所述獲取目標(biāo)頁(yè)面的網(wǎng)頁(yè)文檔包括:
[0022]根據(jù)資源頁(yè)面的鏈接地址,獲取資源頁(yè)面的網(wǎng)頁(yè)文檔。
[0023]優(yōu)選的,所述根據(jù)針對(duì)所述目標(biāo)頁(yè)面的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn),包括:
[0024]根據(jù)針對(duì)資源頁(yè)面的各資源內(nèi)容的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找各相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn)標(biāo)簽。
[0025]優(yōu)選的,所述從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容,包括:
[0026]根據(jù)預(yù)置針對(duì)目標(biāo)頁(yè)面內(nèi)容的正則匹配表達(dá)式和/或前后匹配表達(dá)式,從所述文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容。
[0027]依據(jù)本發(fā)明的另外一個(gè)方面,提供了一種目標(biāo)頁(yè)面內(nèi)容抓取裝置,包括:
[0028]網(wǎng)頁(yè)文檔獲取模塊,適于獲取目標(biāo)頁(yè)面的網(wǎng)頁(yè)文檔;
[0029]節(jié)點(diǎn)查詢模塊,適于根據(jù)針對(duì)所述目標(biāo)頁(yè)面的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn);其中,所述相對(duì)路徑信息基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建;
[0030]內(nèi)容提取模塊,適于從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容。
[0031]優(yōu)選的,所述基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建的相對(duì)路徑信息包括:
[0032]由至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽與屬性構(gòu)建的相對(duì)路徑信息構(gòu)建的相對(duì)路徑信息;
[0033]和/或者,由至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽與屬性和至少一個(gè)文檔對(duì)象模型節(jié)點(diǎn)的標(biāo)簽,以XPATH形式構(gòu)建的相對(duì)路徑信息。
[0034]優(yōu)選的,所述網(wǎng)頁(yè)文檔獲取模塊包括:
[0035]列表文檔獲取模塊,適于根據(jù)列表頁(yè)面的鏈接地址,獲取列表頁(yè)面的網(wǎng)頁(yè)文檔。
[0036]優(yōu)選的,所述節(jié)點(diǎn)查詢模塊,包括:
[0037]列表節(jié)點(diǎn)查找模塊,適于根據(jù)針對(duì)列表頁(yè)面中列表區(qū)域的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn)。
[0038]優(yōu)選的,所述內(nèi)容提取模塊包括:
[0039]資源鏈接獲取模塊,適于從列表頁(yè)面的列表區(qū)域?qū)?yīng)的文檔對(duì)象模型節(jié)點(diǎn)標(biāo)簽中,提取各個(gè)資源頁(yè)面的鏈接地址。
[0040]優(yōu)選的,所述網(wǎng)頁(yè)文檔獲取模塊包括:
[0041]資源文檔獲取模塊,適于根據(jù)資源頁(yè)面的鏈接地址,獲取資源頁(yè)面的網(wǎng)頁(yè)文檔。
[0042]優(yōu)選的,所述節(jié)點(diǎn)查詢模塊,包括:
[0043]資源節(jié)點(diǎn)查詢模塊,適于根據(jù)針對(duì)資源頁(yè)面的各資源內(nèi)容的相對(duì)路徑信息,在所述網(wǎng)頁(yè)文檔中查找各相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn)標(biāo)簽。
[0044]優(yōu)選的,所述內(nèi)容提取模塊,包括:
[0045]再提取模塊,適于根據(jù)預(yù)置針對(duì)目標(biāo)頁(yè)面內(nèi)容的正則匹配表達(dá)式和/或前后匹配表達(dá)式和/或前后表達(dá)式,從所述文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容。
[0046]根據(jù)本發(fā)明的目標(biāo)頁(yè)面內(nèi)容抓取方法可以針對(duì)各個(gè)目標(biāo)網(wǎng)頁(yè),基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建針對(duì)目標(biāo)網(wǎng)頁(yè)的相對(duì)路徑信息,然后在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn),從而可從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容,由此解決了字符串匹配方式下很難準(zhǔn)確區(qū)分目標(biāo)元素信息特點(diǎn),很難對(duì)抓取后的結(jié)果進(jìn)行解析的問(wèn)題,以及絕對(duì)路徑的匹配方式下由于網(wǎng)頁(yè)頁(yè)面對(duì)JS腳本延遲加載的因素,導(dǎo)致絕對(duì)路徑不統(tǒng)一而抓取過(guò)程無(wú)法正常執(zhí)行的問(wèn)題,取得了抓取目標(biāo)頁(yè)面內(nèi)容時(shí),不受頁(yè)面小范圍變動(dòng)干擾,抓取規(guī)則配置簡(jiǎn)單,并且可以提高抓取效率的有益效果。
[0047]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0048]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0049]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種目標(biāo)頁(yè)面內(nèi)容抓取方法的流程示意圖;
[0050]圖1A示出了本發(fā)明一個(gè)實(shí)施例的html文檔的DOM樹(shù)結(jié)構(gòu)示例。
[0051]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的另一種目標(biāo)頁(yè)面內(nèi)容抓取方法的流程示意圖;
[0052]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的另一種目標(biāo)頁(yè)面內(nèi)容抓取方法的流程示意圖;
[0053]圖3A示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的列表頁(yè)面的配置界面示例;
[0054]圖3B示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的資源頁(yè)面的配置界面示例;
[0055]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種目標(biāo)頁(yè)面內(nèi)容抓取裝置的結(jié)構(gòu)示意圖;
[0056]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的另一種目標(biāo)頁(yè)面內(nèi)容抓取裝置的結(jié)構(gòu)示意圖;以及
[0057]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的另一種目標(biāo)頁(yè)面內(nèi)容抓取裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0058]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0059]本發(fā)明的核心思想之一在于,目標(biāo)頁(yè)面內(nèi)容抓取方法可以針對(duì)各個(gè)目標(biāo)網(wǎng)頁(yè),基于文檔對(duì)象模型節(jié)點(diǎn)的屬性相關(guān)信息構(gòu)建針對(duì)目標(biāo)網(wǎng)頁(yè)的相對(duì)路徑信息,然后在所述網(wǎng)頁(yè)文檔中查找所述相對(duì)路徑信息下的文檔對(duì)象模型節(jié)點(diǎn),從而可從查找到的文檔對(duì)象模型節(jié)點(diǎn)中,提取目標(biāo)頁(yè)面內(nèi)容。同時(shí)避免了字符串匹配方式和絕對(duì)路徑的匹配方式產(chǎn)生的問(wèn)題,本發(fā)明實(shí)施例不受頁(yè)面小范圍變動(dòng)干擾,抓取規(guī)則配置簡(jiǎn)單,并且可以提高抓取效率。
[0060]實(shí)施例一
[0061]參照?qǐng)D1,其示出了本發(fā)明一種目標(biāo)頁(yè)面內(nèi)容抓取方法的流程示意圖,具體可以包括:
[0062]步驟110,獲取目標(biāo)頁(yè)面的網(wǎng)頁(yè)文檔;
[006