一種網(wǎng)絡(luò)信息抓取方法和裝置制造方法
【專利摘要】本發(fā)明的實(shí)施例公開了一種網(wǎng)絡(luò)信息抓取方法和裝置。涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,能夠直接獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。該方法包括:通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的統(tǒng)一資源定位符URL;獲取靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;獲取該HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),該腳本語(yǔ)言函數(shù)包括:JavaScript腳本函數(shù);解析該腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從該網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將該網(wǎng)頁(yè)存儲(chǔ),并應(yīng)用正則表達(dá)式抽取其中的其他靜態(tài)的URL。本發(fā)明應(yīng)用于網(wǎng)絡(luò)信息抓取。
【專利說(shuō)明】一種網(wǎng)絡(luò)信息抓取方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,尤其涉及一種網(wǎng)絡(luò)信息抓取方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)今很多的諸如購(gòu)物搜索網(wǎng)站的產(chǎn)品開始注意到互聯(lián)網(wǎng)中海量信息的獲取和集成對(duì)于用戶的重要性。在這些產(chǎn)品中,作為搜索引擎技術(shù)之一的網(wǎng)絡(luò)抓取技術(shù)是整個(gè)構(gòu)架出來(lái)的系統(tǒng)中非常重要的一個(gè)環(huán)節(jié),能幫助各大搜索引擎抓取網(wǎng)頁(yè)并構(gòu)建網(wǎng)頁(yè)數(shù)據(jù)庫(kù)。網(wǎng)絡(luò)抓取技術(shù)是指程序或腳本按一定的規(guī)則,自動(dòng)地下載互聯(lián)網(wǎng)中的特定內(nèi)容的一項(xiàng)技術(shù)。網(wǎng)絡(luò)抓取程序一般從某個(gè)特定的統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)稱URL)出發(fā),獲取訪問(wèn)該URL返回得到的超文本標(biāo)記語(yǔ)(Hypertext Markup Language,簡(jiǎn)稱HTML)網(wǎng)頁(yè),同時(shí)對(duì)該網(wǎng)頁(yè)進(jìn)行分析,從中抽取得到一系列相關(guān)的其他URL用于繼續(xù)訪問(wèn),從而得到一系列相關(guān)的HTML網(wǎng)頁(yè)內(nèi)容,直到遍歷完整個(gè)網(wǎng)絡(luò),或者達(dá)到一定的條件后停止抓取。
[0003]在實(shí)現(xiàn)上述網(wǎng)絡(luò)抓取的過(guò)程中,發(fā)明人發(fā)現(xiàn)大量的網(wǎng)站開始采用JavaScript、Ajax等技術(shù)制作動(dòng)態(tài)網(wǎng)頁(yè)來(lái)完善用戶的交互與體驗(yàn),但這些技術(shù)也給網(wǎng)絡(luò)抓取帶來(lái)了難度。現(xiàn)有的網(wǎng)絡(luò)抓取技術(shù)獲取的HTML網(wǎng)頁(yè)一般為靜態(tài)網(wǎng)頁(yè),靜態(tài)網(wǎng)頁(yè)的特點(diǎn)是其內(nèi)容完全由訪問(wèn)的URL確定,并且不同的用戶訪問(wèn)得到的內(nèi)容都是一樣的;然而動(dòng)態(tài)網(wǎng)頁(yè)除了能得到靜態(tài)網(wǎng)頁(yè)的內(nèi)容,還含有大量必須通過(guò)執(zhí)行客戶端腳本才能夠得到的URL,即在動(dòng)態(tài)網(wǎng)頁(yè)中,同一個(gè)URL,不同的用戶訪問(wèn)所獲取的網(wǎng)頁(yè)內(nèi)容是不同的,因此當(dāng)需要針對(duì)不同用戶獲取不同的個(gè)性化數(shù)據(jù)時(shí),現(xiàn)有的網(wǎng)絡(luò)抓取技術(shù)無(wú)法直接獲得動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供了一種網(wǎng)絡(luò)信息抓取方法和裝置,用以獲得動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,提供一種網(wǎng)絡(luò)信息抓取方法,包括:
[0007]通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的統(tǒng)一資源定位符URL ;
[0008]獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;
[0009]獲取所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括JavaScript腳本語(yǔ)言函數(shù);
[0010]解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)存儲(chǔ)。
[0011]在第一種可能的實(shí)現(xiàn)方式中,根據(jù)第一方面,該方法還包括:
[0012]創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接;
[0013]設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。[0014]在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第一方面或第一種可能的實(shí)現(xiàn)方式,具體實(shí)現(xiàn)為:解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL包括:通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
[0015]第二方面,提供了一種網(wǎng)絡(luò)信息抓取裝置,所述網(wǎng)絡(luò)信息抓取裝置包括:
[0016]網(wǎng)頁(yè)地址訪問(wèn)單元,用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的URL ;
[0017]網(wǎng)頁(yè)內(nèi)容獲取單元,用于獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;
[0018]網(wǎng)頁(yè)腳本程序獲取單元,用于獲取所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括JavaScript腳本語(yǔ)言函數(shù);
[0019]網(wǎng)頁(yè)解析單元,用于解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)存儲(chǔ)。
[0020]在第一種可能的實(shí)現(xiàn)方式中,根據(jù)第二方面,所述的網(wǎng)絡(luò)信息抓取裝置還包括:
[0021]網(wǎng)絡(luò)連接單元,用于創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接;
[0022]瀏覽器設(shè)置單元,用于設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。
[0023]在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第二方面或第一種可能的實(shí)現(xiàn)方式,所述網(wǎng)頁(yè)解析單元,具體用于通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
[0024]第三方面,提供了一種網(wǎng)絡(luò)信息抓取裝置,所述網(wǎng)絡(luò)信息抓取裝置包括:至少一個(gè)入口端和一個(gè)出口端以及分別與所述入口端和所述出口端連接的處理器和存儲(chǔ)器,其中:
[0025]所述處理器用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的URL ;所述存儲(chǔ)器通過(guò)所述至少一個(gè)入口端獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;
[0026]所述處理器還用于獲取所述存儲(chǔ)器中所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括=JavaScript腳本語(yǔ)言函數(shù);
[0027]所述處理器還用于解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)通過(guò)所述至少一個(gè)出口端發(fā)送至網(wǎng)頁(yè)數(shù)據(jù)庫(kù)存儲(chǔ)。
[0028]在第一種可能的實(shí)現(xiàn)方式中,結(jié)合第三方面,所述處理器還用于創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接;設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括:JavaScript腳本語(yǔ)言。
[0029]在第二種可能的實(shí)現(xiàn)方式中,結(jié)合第三方面或第一種可能的實(shí)現(xiàn)方式,所述處理器具體用于通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
[0030]本發(fā)明的實(shí)施例提供的網(wǎng)絡(luò)信息抓取方法和裝置,采用對(duì)動(dòng)態(tài)網(wǎng)頁(yè)對(duì)應(yīng)的靜態(tài)的URL進(jìn)行訪問(wèn)時(shí)在所得到的HTML文件中對(duì)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析的方法,得到動(dòng)態(tài)網(wǎng)頁(yè)中的包含的其他URL,使得在進(jìn)行網(wǎng)絡(luò)信息的抓取時(shí)獲取靜態(tài)網(wǎng)頁(yè)內(nèi)容的同時(shí)還能獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容?!緦@綀D】
【附圖說(shuō)明】
[0031]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)信息抓取方法的流程示意圖;
[0033]圖2為本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)信息抓取裝置的結(jié)構(gòu)示意圖;
[0034]圖3為本發(fā)明實(shí)施例提供的另一種網(wǎng)絡(luò)信息抓取裝置的結(jié)構(gòu)示意圖;
[0035]圖4為本發(fā)明另一實(shí)施例提供的一種網(wǎng)絡(luò)信息抓取裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]本發(fā)明的實(shí)施例公開一種網(wǎng)絡(luò)信息抓取方法,如圖1所示,該方法包括如下步驟:
[0038]101、網(wǎng)絡(luò)信息抓取裝置通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的統(tǒng)一資源定位符URL。
[0039]進(jìn)一步可選的,步驟101之前還包括:
[0040]101a、創(chuàng)建瀏覽器客戶端網(wǎng)絡(luò)連接;
[0041]101b、設(shè)置該瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,該腳本語(yǔ)言包括:JavaScript腳本語(yǔ)言。
[0042]102、獲取該靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件。
[0043]103、獲取該HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),該腳本語(yǔ)言函數(shù)包括=JavaScript腳本函數(shù)。
[0044]104、解析該腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將該網(wǎng)頁(yè)存儲(chǔ)。
[0045]步驟104具體包括:通過(guò)頁(yè)面解析工具解析腳本語(yǔ)言函數(shù)模擬用戶操作,得到解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。當(dāng)然這里所模擬的用戶操作可以為用戶的點(diǎn)擊動(dòng)作。
[0046]可選的,這里可以配置只針對(duì)需要獲取的內(nèi)容對(duì)應(yīng)的可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析,對(duì)其他的可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)不進(jìn)行解析。
[0047]此外,在得到了解析后的網(wǎng)頁(yè)的同時(shí),還抽取出了解析后的網(wǎng)頁(yè)中的其他靜態(tài)的URL,對(duì)新抽取的其他靜態(tài)的URL進(jìn)行步驟101?104的過(guò)程,重復(fù)此過(guò)程,直到獲取動(dòng)態(tài)網(wǎng)頁(yè)中所包含的全部需要內(nèi)容為止。
[0048]本發(fā)明的實(shí)施例提供的網(wǎng)絡(luò)信息抓取方法,采用對(duì)動(dòng)態(tài)網(wǎng)頁(yè)對(duì)應(yīng)的靜態(tài)的URL進(jìn)行訪問(wèn)時(shí)在所得到的HTML文件中對(duì)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析的方法,得到動(dòng)態(tài)網(wǎng)頁(yè)中的包含的其他URL,使得在進(jìn)行網(wǎng)絡(luò)信息的抓取時(shí)獲取靜態(tài)網(wǎng)頁(yè)內(nèi)容的同時(shí)還能獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。[0049]具體的,以爬取某網(wǎng)頁(yè)作者信息為例,根據(jù)任意文章的URL訪問(wèn)到相應(yīng)的網(wǎng)頁(yè)頁(yè)面,找到所要抓取的網(wǎng)頁(yè)元素,模擬一次瀏覽器點(diǎn)擊,得到新的網(wǎng)頁(yè)并將新的網(wǎng)頁(yè)進(jìn)行存儲(chǔ)。這里以摘要(Abstract)為將要抓取的網(wǎng)頁(yè)元素為例進(jìn)行說(shuō)明。其程序?qū)崿F(xiàn)過(guò)程可以包括:
[0050]KffebClient client = new WebClient () ;//建立了一個(gè)瀏覽器客戶端的網(wǎng)絡(luò)連接;
[0051]2、 client.setAjaxController(newNicelyResynchronizingAjaxController O) ;//設(shè)置瀏覽器客戶端支持Ajax (基于JavaScript語(yǔ)言所實(shí)現(xiàn)的網(wǎng)頁(yè)開發(fā)技術(shù));
[0052]3> HtmlPage page = client.getPage (url) -J/ 獲得 URL 對(duì)應(yīng)的網(wǎng)頁(yè);
[0053]4、HtmlElement Abstract = (HtmlElement) page.getByXPath
[0054](" //span[contains (ititie, 1 Abstract</span>1 )]" ).get (0);
[0055]//用可擴(kuò)展標(biāo)記語(yǔ)言的路徑語(yǔ)言(XML Path Language,簡(jiǎn)稱xpath)得到摘要(Abstract)這一個(gè)網(wǎng)頁(yè)元素;
[0056]具體的,在所爬取的此網(wǎng)頁(yè)中不止摘要(Abstract)這一個(gè)網(wǎng)頁(yè)元素,還包括:原始資料(Source Materials)和著作者(Authors),但這里只針對(duì)需要獲取的內(nèi)容對(duì)應(yīng)的網(wǎng)頁(yè)元素即摘要(Abstract)的腳本語(yǔ)言函數(shù)進(jìn)行解析。
[0057]5、page = Abstract, click() ;// 模擬點(diǎn)擊摘要(Abstract)這一個(gè)網(wǎng)頁(yè)元素,并得到新的網(wǎng)頁(yè);
[0058]6、String xml = page.asXml () ;//將新的網(wǎng)頁(yè)以可擴(kuò)展標(biāo)記語(yǔ)言(XtensibleMarkup Language,簡(jiǎn)稱 XML)打印出來(lái)。
[0059]本發(fā)明的實(shí)施例提供的網(wǎng)絡(luò)信息抓取方法,采用對(duì)動(dòng)態(tài)網(wǎng)頁(yè)對(duì)應(yīng)的靜態(tài)的URL進(jìn)行訪問(wèn)時(shí)在所得到的HTML文件中對(duì)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析的方法,得到動(dòng)態(tài)網(wǎng)頁(yè)中的包含的其他URL,使得在進(jìn)行網(wǎng)絡(luò)信息的抓取時(shí)獲取靜態(tài)網(wǎng)頁(yè)內(nèi)容的同時(shí)還能獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。
[0060]本發(fā)明的實(shí)施例公開了一種網(wǎng)絡(luò)信息抓取裝置2,如圖2所示,網(wǎng)絡(luò)信息抓取裝置2包括:網(wǎng)頁(yè)地址訪問(wèn)單元21、網(wǎng)頁(yè)內(nèi)容獲取單元22、網(wǎng)頁(yè)腳本程序獲取單元23和網(wǎng)頁(yè)解析單元24,其中:
[0061]網(wǎng)頁(yè)地址訪問(wèn)單元21,用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的統(tǒng)一資源定位符URL ;
[0062]網(wǎng)頁(yè)內(nèi)容獲取單元22,用于獲取該靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;
[0063]網(wǎng)頁(yè)腳本程序獲取單元23,用于獲取HTML文件中對(duì)應(yīng)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),該腳本語(yǔ)言函數(shù)包括JavaScript腳本函數(shù);
[0064]網(wǎng)頁(yè)解析單元24,用于解析腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從該網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將該網(wǎng)頁(yè)存儲(chǔ)。
[0065]本發(fā)明的實(shí)施例提供的網(wǎng)絡(luò)信息抓取裝置,采用對(duì)動(dòng)態(tài)網(wǎng)頁(yè)對(duì)應(yīng)的靜態(tài)的URL進(jìn)行訪問(wèn)時(shí)在所得到的HTML文件中對(duì)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析的方法,得到動(dòng)態(tài)網(wǎng)頁(yè)中的包含的其他URL,使得在進(jìn)行網(wǎng)絡(luò)信息的抓取時(shí)獲取靜態(tài)網(wǎng)頁(yè)內(nèi)容的同時(shí)還能獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。[0066]進(jìn)一步,可選的如圖3所示,網(wǎng)絡(luò)信息抓取裝置2還包括:網(wǎng)絡(luò)連接單元25和瀏覽器設(shè)置單元26,其中:
[0067]網(wǎng)絡(luò)連接單元25,用于創(chuàng)建瀏覽器客戶端網(wǎng)絡(luò)連接;
[0068]瀏覽器設(shè)置單元26,用于設(shè)置瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。
[0069]可選的如圖3所示,網(wǎng)頁(yè)解析單元24具體用于通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
[0070]本實(shí)施例公開了一種網(wǎng)絡(luò)信息抓取裝置3,如圖4所示,網(wǎng)絡(luò)信息抓取裝置3包括:至少一個(gè)入口端31和一個(gè)出口端32以及分別與入口端31和出口端32連接的處理器33和存儲(chǔ)器34,其中:
[0071]處理器33用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的URL ;存儲(chǔ)器34通過(guò)至少一個(gè)入口端獲取該靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件;
[0072]處理器33還用于獲取存儲(chǔ)器34中HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),該腳本語(yǔ)言函數(shù)包括JavaScript腳本語(yǔ)言函數(shù);
[0073]處理器33還用于解析腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從該網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并該網(wǎng)頁(yè)通過(guò)至少一個(gè)出口端32發(fā)送至網(wǎng)頁(yè)數(shù)據(jù)庫(kù)存儲(chǔ)。
[0074]本發(fā)明的實(shí)施例提供的網(wǎng)絡(luò)信息抓取裝置,采用對(duì)動(dòng)態(tài)網(wǎng)頁(yè)對(duì)應(yīng)的靜態(tài)的URL進(jìn)行訪問(wèn)時(shí)在所得到的HTML文件中對(duì)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù)進(jìn)行解析的方法,得到動(dòng)態(tài)網(wǎng)頁(yè)中的包含的其他URL,使得在進(jìn)行網(wǎng)絡(luò)信息的抓取時(shí)獲取靜態(tài)網(wǎng)頁(yè)內(nèi)容的同時(shí)還能獲取動(dòng)態(tài)網(wǎng)頁(yè)中的URL和URL對(duì)應(yīng)的內(nèi)容。
[0075]進(jìn)一步可選的,處理器33還用于創(chuàng)建瀏覽器客戶端網(wǎng)絡(luò)連接;設(shè)置瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,腳本語(yǔ)言包括=JavaScript腳本語(yǔ)言。
[0076]可選的,處理器33具體用于通過(guò)頁(yè)面解析工具解析腳本語(yǔ)言函數(shù)模擬用戶操作,得到該解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的其他靜態(tài)的URL,該解析工具包括:htmlunit分析工具。
[0077]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0078]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)信息抓取方法,其特征在于,包括: 通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的統(tǒng)一資源定位符URL ; 獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件; 獲取所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括=JavaScript腳本語(yǔ)言函數(shù); 解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)存儲(chǔ)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接; 設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL包括: 通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
4.一種網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述網(wǎng)絡(luò)信息抓取裝置包括: 網(wǎng)頁(yè)地址訪問(wèn)單元,用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的URL ; 網(wǎng)頁(yè)內(nèi)容獲取單元,用于獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件; 網(wǎng)頁(yè)腳本程序獲取單元,用于獲取所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括JavaScript腳本語(yǔ)言函數(shù); 網(wǎng)頁(yè)解析單元,用于解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)存儲(chǔ)。
5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述裝置還包括: 網(wǎng)絡(luò)連接單元,用于創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接; 瀏覽器設(shè)置單元,用于設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。
6.根據(jù)權(quán)利要求4或5所述的網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述網(wǎng)頁(yè)解析單元,具體用于通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
7.—種網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述網(wǎng)絡(luò)信息抓取裝置包括:至少一個(gè)入口端和一個(gè)出口端以及分別與所述入口端和所述出口端連接的處理器和存儲(chǔ)器,其中: 所述處理器用于通過(guò)預(yù)設(shè)的瀏覽器客戶端訪問(wèn)靜態(tài)的URL ;所述存儲(chǔ)器通過(guò)所述至少一個(gè)入口端獲取所述靜態(tài)的URL對(duì)應(yīng)的超文本標(biāo)記語(yǔ)言HTML文件; 所述處理器還用于獲取所述存儲(chǔ)器中所述HTML文件中對(duì)應(yīng)可實(shí)現(xiàn)用戶操作執(zhí)行的腳本語(yǔ)言函數(shù),所述腳本語(yǔ)言函數(shù)包括JavaScript腳本語(yǔ)言函數(shù); 所述處理器還用于解析所述腳本語(yǔ)言函數(shù),得到解析后的網(wǎng)頁(yè),并從所述網(wǎng)頁(yè)中抽取其他靜態(tài)的URL,并將所述網(wǎng)頁(yè)通過(guò)所述至少一個(gè)出口端發(fā)送至網(wǎng)頁(yè)數(shù)據(jù)庫(kù)存儲(chǔ)。
8.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述處理器還用于創(chuàng)建所述瀏覽器客戶端網(wǎng)絡(luò)連接;設(shè)置所述瀏覽器客戶端的瀏覽器版本及支持的腳本語(yǔ)言,所述腳本語(yǔ)言包括JavaScript腳本語(yǔ)言。
9.根據(jù) 權(quán)利要求7或8所述的網(wǎng)絡(luò)信息抓取裝置,其特征在于,所述處理器具體用于通過(guò)頁(yè)面解析工具解析所述腳本語(yǔ)言函數(shù)模擬用戶操作,得到所述解析后的網(wǎng)頁(yè),并應(yīng)用正則表達(dá)式抽取其中的所述其他靜態(tài)的URL,所述解析工具包括:htmlunit分析工具。
【文檔編號(hào)】G06F17/30GK103631806SQ201210305527
【公開日】2014年3月12日 申請(qǐng)日期:2012年8月24日 優(yōu)先權(quán)日:2012年8月24日
【發(fā)明者】鄧志鴻, 張 杰, 賴博彥, 劉河 申請(qǐng)人:華為技術(shù)有限公司, 北京大學(xué)