亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

抓取網(wǎng)頁(yè)數(shù)據(jù)的方法及系統(tǒng)的制作方法

文檔序號(hào):8258911閱讀:918來(lái)源:國(guó)知局
抓取網(wǎng)頁(yè)數(shù)據(jù)的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,更為具體而言,涉及抓取網(wǎng)頁(yè)數(shù)據(jù)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展,海量數(shù)據(jù)日益增多,用戶產(chǎn)品層出不窮,競(jìng)爭(zhēng)的加劇以及產(chǎn)品迭代速度的加快給數(shù)據(jù)采集技術(shù)提出了更高的要求。產(chǎn)品對(duì)數(shù)據(jù)采集技術(shù)存在豐富而多變的需求,例如,采集由⑶I (Graphical User Interface,圖形用戶界面)交互觸發(fā)展現(xiàn)的數(shù)據(jù)全集、采集被驗(yàn)證機(jī)制阻礙的信息或者采集由關(guān)鍵字驅(qū)動(dòng)的查詢結(jié)果信息等。然而,目前在現(xiàn)有技術(shù)中缺乏一種能夠支持不同種類(lèi)需求的數(shù)據(jù)采集方法。

【發(fā)明內(nèi)容】

[0003]為有效地解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種抓取網(wǎng)頁(yè)數(shù)據(jù)的方法及系統(tǒng)。
[0004]一方面,本發(fā)明的實(shí)施方式提供了一種抓取網(wǎng)頁(yè)數(shù)據(jù)的方法,所述方法包括:
[0005]生成數(shù)據(jù)模板;
[0006]根據(jù)所述生成的數(shù)據(jù)模板以及第一請(qǐng)求數(shù)據(jù)拼接出第二請(qǐng)求數(shù)據(jù);
[0007]根據(jù)所述拼接出的第二請(qǐng)求數(shù)據(jù)執(zhí)行網(wǎng)頁(yè)數(shù)據(jù)的抓取。
[0008]另一方面,本發(fā)明的實(shí)施方式還提供了一種抓取網(wǎng)頁(yè)數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括:
[0009]生成模塊,用于生成數(shù)據(jù)模板;
[0010]拼接模塊,用于根據(jù)所述生成模塊所生成的數(shù)據(jù)模板以及第一請(qǐng)求數(shù)據(jù)拼接出第二請(qǐng)求數(shù)據(jù);
[0011]抓取模塊,用于根據(jù)所述拼接模塊所拼接出的第二請(qǐng)求數(shù)據(jù)執(zhí)行網(wǎng)頁(yè)數(shù)據(jù)的抓取。
[0012]實(shí)施本發(fā)明提供的抓取網(wǎng)頁(yè)數(shù)據(jù)的方法及系統(tǒng)可以在抓取網(wǎng)頁(yè)數(shù)據(jù)的過(guò)程中提高對(duì)多樣化需求的適應(yīng)性。
【附圖說(shuō)明】
[0013]圖1是根據(jù)本發(fā)明實(shí)施方式的一種抓取網(wǎng)頁(yè)數(shù)據(jù)的方法的流程圖;
[0014]圖2示出了圖1所示的步驟SllO的一種實(shí)施方式;
[0015]圖3是根據(jù)本發(fā)明實(shí)施方式的另一種抓取網(wǎng)頁(yè)數(shù)據(jù)的方法的框架圖;
[0016]圖4是根據(jù)本發(fā)明實(shí)施方式的一種抓取網(wǎng)頁(yè)數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)示意圖;
[0017]圖5示出了圖4所示的生成模塊110的一種實(shí)施方式。
【具體實(shí)施方式】
[0018]為使本發(fā)明的實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0019]圖1是根據(jù)本發(fā)明實(shí)施方式的一種抓取網(wǎng)頁(yè)數(shù)據(jù)的方法的流程圖。所述方法包括:
[0020]SllO:生成數(shù)據(jù)模板。
[0021]S120:根據(jù)所述生成的數(shù)據(jù)模板以及第一請(qǐng)求數(shù)據(jù)拼接出第二請(qǐng)求數(shù)據(jù)。
[0022]其中,在本發(fā)明的實(shí)施方式中,該數(shù)據(jù)模板可以包括:請(qǐng)求數(shù)據(jù)模板,所述第一請(qǐng)求數(shù)據(jù)為用戶的原始請(qǐng)求數(shù)據(jù),而該第二請(qǐng)求數(shù)據(jù)是根據(jù)所述數(shù)據(jù)模塊以及第一請(qǐng)求數(shù)據(jù)拼接出的真正用于發(fā)送的請(qǐng)求數(shù)據(jù)。
[0023]S130:根據(jù)所述拼接出的第二請(qǐng)求數(shù)據(jù)執(zhí)行網(wǎng)頁(yè)數(shù)據(jù)的抓取。
[0024]在上述實(shí)施方式中,通過(guò)數(shù)據(jù)模板可以在抓取網(wǎng)頁(yè)數(shù)據(jù)的過(guò)程中提高對(duì)多樣化需求的適應(yīng)性。
[0025]其中,在本發(fā)明的實(shí)施方式中,該步驟S130可以包括:將所述拼接出的第二請(qǐng)求數(shù)據(jù)發(fā)送至待抓取的站點(diǎn);接收所述站點(diǎn)返回的響應(yīng)數(shù)據(jù)。
[0026]并且,在本發(fā)明的實(shí)施方式中,所述第一請(qǐng)求數(shù)據(jù)、第二請(qǐng)求數(shù)據(jù)以及響應(yīng)數(shù)據(jù)可以是HTTP (Hypertext transfer protocol,超文本傳輸協(xié)議)協(xié)議數(shù)據(jù)。
[0027]為直接面向指定數(shù)據(jù),不下載頁(yè)面中其他無(wú)關(guān)數(shù)據(jù),節(jié)省帶寬,以及實(shí)現(xiàn)定制化抓取,在本發(fā)明的一種優(yōu)選的實(shí)施方式中,該數(shù)據(jù)模板還可以包括:響應(yīng)數(shù)據(jù)模板。并且,在執(zhí)行步驟S140后可以根據(jù)該響應(yīng)數(shù)據(jù)模板提取所述響應(yīng)數(shù)據(jù)中的部分?jǐn)?shù)據(jù)。其中該響應(yīng)數(shù)據(jù)模板描述了響應(yīng)數(shù)據(jù)中所需要的一部分?jǐn)?shù)據(jù)的位置。
[0028]此外,為實(shí)現(xiàn)對(duì)非響應(yīng)數(shù)據(jù)模板解析方式的支持,進(jìn)一步提高對(duì)個(gè)性化及定制化抓取的支持,在本發(fā)明的另一種優(yōu)選的實(shí)施方式中,除根據(jù)響應(yīng)數(shù)據(jù)模板提取所述響應(yīng)數(shù)據(jù)中的部分?jǐn)?shù)據(jù)的這一定制化抓取方式以外,還可以根據(jù)用戶的自定義配置提取所述響應(yīng)數(shù)據(jù)中的部分?jǐn)?shù)據(jù)來(lái)實(shí)現(xiàn)定制化抓取。其中所述自定義配置例如可以是正則表達(dá)式、XPath (Xml Path Language,可擴(kuò)展標(biāo)記語(yǔ)言路徑語(yǔ)言)字符串、JSONPath (JS0N路徑語(yǔ)言)字符串等。
[0029]如圖2所示,步驟SllO具體可以通過(guò)以下方式實(shí)現(xiàn):
[0030]Slll:對(duì)所述站點(diǎn)進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)的抓取。
[0031]S112:截獲所述抓取產(chǎn)生的傳輸數(shù)據(jù)。
[0032]S113:根據(jù)所述截獲的傳輸數(shù)據(jù)中的各請(qǐng)求數(shù)據(jù)生成所述請(qǐng)求數(shù)據(jù)模板,以及,根據(jù)所述截獲的傳輸數(shù)據(jù)中的各響應(yīng)數(shù)據(jù)生成所述響應(yīng)數(shù)據(jù)模板。
[0033]其中,在本發(fā)明的實(shí)施方式中,該步驟S113中的根據(jù)所述截獲的傳輸數(shù)據(jù)中的各請(qǐng)求數(shù)據(jù)生成所述請(qǐng)求數(shù)據(jù)模板可以通過(guò)以下方式實(shí)現(xiàn):確定所述各請(qǐng)求數(shù)據(jù)中相同的名值對(duì)以及不同的名值對(duì);將所述相同的名值對(duì)直接寫(xiě)入到所述請(qǐng)求數(shù)據(jù)模板,將所述不同的名值對(duì)中的取值修正為替換標(biāo)簽后寫(xiě)入到所述請(qǐng)求數(shù)據(jù)模板。其中,名值對(duì)是指字段的“名稱(chēng)”和“取值”,以HTTP標(biāo)準(zhǔn)請(qǐng)求報(bào)文的報(bào)文頭中的字段Host:WWW.baidu.com為例,Host是字段的名稱(chēng),www.baidu.com為字段的取值,“Host”:“www.baidu.com”即為一個(gè)名值對(duì)。
[0034]并且,根據(jù)所述截獲的傳輸數(shù)據(jù)的中的各響應(yīng)數(shù)據(jù)生成所述響應(yīng)數(shù)據(jù)模板可以通過(guò)以下方式實(shí)現(xiàn):確定所述各響應(yīng)數(shù)據(jù)中相同的名值對(duì)以及不同的名值對(duì);將所述相同的名值對(duì)直接寫(xiě)入到所述響應(yīng)數(shù)據(jù)模板,將所述不同的名值對(duì)中的取值修正為替換標(biāo)簽后寫(xiě)入到所述響應(yīng)數(shù)據(jù)模板。
[0035]以下結(jié)合具體的例子對(duì)本發(fā)明的實(shí)施方式進(jìn)行具體說(shuō)明。如圖3所示,首先獲取瀏覽器與網(wǎng)站之間交互的數(shù)據(jù)(包括HTTP請(qǐng)求數(shù)據(jù)以及HTTP響應(yīng)數(shù)據(jù)),并從所述獲取的交互數(shù)據(jù)中分析出穩(wěn)定不變的數(shù)據(jù)格式信息,即數(shù)據(jù)模板,包括:請(qǐng)求數(shù)據(jù)模板以及響應(yīng)數(shù)據(jù)模板,其中該請(qǐng)求數(shù)據(jù)模板用于拼接請(qǐng)求數(shù)據(jù),響應(yīng)數(shù)據(jù)模板用于描述響應(yīng)數(shù)據(jù)中所需要的一部分?jǐn)?shù)據(jù)的位置;然后將第一請(qǐng)求數(shù)據(jù)(用戶的原始請(qǐng)求數(shù)據(jù))加載到請(qǐng)求隊(duì)列;最后根據(jù)請(qǐng)求數(shù)據(jù)模板以及請(qǐng)求隊(duì)列中的第一請(qǐng)求數(shù)據(jù)拼接出第二請(qǐng)求數(shù)據(jù),并以HTTP協(xié)議的方式發(fā)送給待抓取的站點(diǎn),然后以HTTP協(xié)議的方式讀取該站點(diǎn)返回的響應(yīng)數(shù)據(jù),從該響應(yīng)數(shù)據(jù)中提取所需要的數(shù)據(jù)(即定制化提取),比如從站點(diǎn)返回的響應(yīng)數(shù)據(jù)一般為 HTML (HyperText Mark-up Language,超文本標(biāo)記語(yǔ)言)網(wǎng)頁(yè),或者 JSON (JavaScriptObject Notat1n,一種輕量級(jí)的數(shù)據(jù)交換格式)數(shù)據(jù)或者XML (Extensible MarkupLanguage,可擴(kuò)展標(biāo)記語(yǔ)言)數(shù)據(jù)等,而對(duì)于用戶而言,可能只關(guān)心一部分的數(shù)據(jù)(例如一個(gè)淘寶網(wǎng)頁(yè)中的商品名稱(chēng)以及價(jià)格),具體地可以根據(jù)響應(yīng)數(shù)據(jù)模板進(jìn)行提取,此外在本發(fā)明的實(shí)施方式中,還可以向用戶提供接口設(shè)計(jì)(輸入響應(yīng)數(shù)據(jù)以及用戶自定義配置),使用戶擴(kuò)展設(shè)計(jì)出滿足自己需求的用于定制化提取的程序。該用戶自定義配置例如可以是正則表達(dá)式、XPath (Xml Path Language,可擴(kuò)展標(biāo)記語(yǔ)言路徑語(yǔ)言)字符串、JSONPath (JSON路徑語(yǔ)言)字符串等。此外,在本發(fā)明的實(shí)施方式中,通過(guò)采用并發(fā)線程池提高抓取效率。
[0036]以下對(duì)生成數(shù)據(jù)模板的具體過(guò)程進(jìn)行說(shuō)明。
[0037]首先,在瀏覽器和網(wǎng)站服務(wù)器之間架設(shè)網(wǎng)絡(luò)代理;其次,用戶基于瀏覽器發(fā)生η輪網(wǎng)頁(yè)數(shù)據(jù)的抓取行為,并使用代理截獲所述抓取產(chǎn)生的傳輸數(shù)據(jù)(包括HTTP請(qǐng)求數(shù)據(jù)以及HTTP響應(yīng)數(shù)據(jù)),令每輪交互過(guò)程分為m組報(bào)文,將請(qǐng)求數(shù)據(jù)報(bào)文標(biāo)識(shí)成Snm,將響應(yīng)數(shù)據(jù)報(bào)文標(biāo)識(shí)成Rnm,則第j (1〈 = j< = η)輪交互過(guò)程表示為:C(j)=[(Sj I, Rjl),(Sj2, Rj2),...,(Sjm, Rjm)],第 j 輪中第 k 組(1〈 = k〈 = m)交互數(shù)據(jù)為(Sjk, Rjk);最后確定該η輪交互中同組請(qǐng)求數(shù)據(jù)報(bào)文中的C0MM0N_KV(相同的“KV對(duì)”,即名值對(duì),
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1