基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)爬蟲系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)挖掘和搜索技術(shù)領(lǐng)域,涉及基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)爬 蟲系統(tǒng)和結(jié)構(gòu)化信息抽取的方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和普及,Web資源呈爆炸式增長(zhǎng),網(wǎng)頁(yè)成為人們?nèi)粘I钪?獲取信息的重要來源。網(wǎng)絡(luò)資源繁多且具開放性、動(dòng)態(tài)性和異構(gòu)性等,無法進(jìn)行統(tǒng)一管理, 這使得人們想要快速準(zhǔn)確地查找到所需信息成為難題。網(wǎng)絡(luò)資源的異構(gòu)性導(dǎo)致很難獲取結(jié) 構(gòu)化的信息。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足而提供的一種基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò) 爬蟲系統(tǒng),該系統(tǒng)能夠快速準(zhǔn)確地查找到所需信息。
[0004] 實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案是:
[0005] -種基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)爬蟲系統(tǒng),特點(diǎn)是該系統(tǒng)包括基礎(chǔ)服務(wù)模塊、抓 取器及設(shè)置于抓取器內(nèi)的任務(wù)調(diào)度模塊、解析服務(wù)模塊、頁(yè)面下載模塊、頁(yè)面更新模塊及數(shù) 據(jù)存儲(chǔ)模塊,任務(wù)調(diào)度模塊控制抓取器抓取數(shù)據(jù)的流程;解析服務(wù)模塊解析網(wǎng)頁(yè)的內(nèi)容并 且提供自定義的模版抽取信息;頁(yè)面下載模塊下載網(wǎng)頁(yè)的源代碼,支持加載javascipt,異 步動(dòng)態(tài)加載的ajax以及form表單的頁(yè)面;頁(yè)面更新模塊獲取網(wǎng)頁(yè)更新過后的數(shù)據(jù)信息; 數(shù)據(jù)存儲(chǔ)模塊通過結(jié)構(gòu)化信息抽取的方法,把抽取過后的內(nèi)容存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)的數(shù) 據(jù)庫(kù)中;基礎(chǔ)服務(wù)模塊完成抓取器的流量控制、抓取器的監(jiān)控報(bào)警機(jī)制、URL去重服務(wù)、URL 歸一化服務(wù)及js/css資源管理服務(wù)。
[0006] 所述結(jié)構(gòu)化信息抽取的方法包括:
[0007] A)基于構(gòu)建詞典的空間向量模型算法,具體步驟如下:
[0008] 1)根據(jù)用戶想要抓取某領(lǐng)域的數(shù)據(jù)信息,預(yù)先構(gòu)建該領(lǐng)域關(guān)鍵詞的詞典,把該詞 典看作是一個(gè)m維的詞向量,記作0 m;
[0009] 2)通過使用分詞工具,把網(wǎng)頁(yè)的文本內(nèi)容分為孤立的詞語;
[0010] 3)計(jì)算每一個(gè)詞語在詞典中出現(xiàn)次數(shù),詞語出現(xiàn)的次數(shù)越高就代表相關(guān)度越高;
[0011] 4)每個(gè)詞語都有相應(yīng)的次數(shù);把每個(gè)詞語當(dāng)作一個(gè)維度,假設(shè)該網(wǎng)頁(yè)有η個(gè)詞語, 就把該網(wǎng)頁(yè)看作是一個(gè)η維的向量;
[0012] 5)每一個(gè)網(wǎng)頁(yè)得到一個(gè)η維的詞向量,記作αη;
[0013] 6)通過本公式計(jì)算網(wǎng)頁(yè)與詞典的相關(guān)度:
[0014] 7)把網(wǎng)頁(yè)相關(guān)度S(an,大于預(yù)先設(shè)置的閾值Θ的網(wǎng)頁(yè),放入待結(jié)構(gòu)化抽取 隊(duì)列中;
[0015] B)構(gòu)建網(wǎng)頁(yè)模版,具體步驟如下:
[0016] 1)分析網(wǎng)頁(yè)html結(jié)構(gòu),網(wǎng)頁(yè)包括head標(biāo)簽和body標(biāo)簽;
[0017] 2) Head標(biāo)簽中,目標(biāo)標(biāo)簽是title標(biāo)簽;
[0018] 3) body標(biāo)簽中,目標(biāo)標(biāo)簽是p標(biāo)簽,a標(biāo)簽,form表單標(biāo)簽;
[0019] 4)把上述目標(biāo)標(biāo)簽組合在一起,完成網(wǎng)頁(yè)的模板;
[0020] C)結(jié)構(gòu)化信息抽取,具體步驟如下:
[0021] 使用B)構(gòu)建的網(wǎng)頁(yè)模板去抽取A)空間向量模型算法得到的待抽取網(wǎng)頁(yè)中的網(wǎng)頁(yè) 信息,最終得到結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)以xml格式存儲(chǔ)到分布式系統(tǒng)數(shù)據(jù)庫(kù)中。
[0022] 所述抓取數(shù)據(jù)的流程如下:
[0023] 1)用戶給定種子URL,作為抓取互聯(lián)網(wǎng)網(wǎng)頁(yè)的入口;
[0024] 2)用戶個(gè)性化定制基礎(chǔ)服務(wù)配置文件,包括:流量控制、URL過濾規(guī)則、URL去重服 務(wù)、URL歸一化、瀏覽器引擎及監(jiān)控服務(wù);
[0025] 3)根據(jù)URL過濾規(guī)則,URL去重服務(wù),抓取符合條件的URL ;
[0026] 4)頁(yè)面下載模塊對(duì)符合條件的URL逐一下載URL對(duì)應(yīng)頁(yè)面;采用多線程并發(fā)技 術(shù)加快下載頁(yè)面的速度;頁(yè)面下載模塊調(diào)用基礎(chǔ)服務(wù)中瀏覽器引擎,瀏覽器引擎通過調(diào)用 chrome內(nèi)核加載植染javascript/ajax網(wǎng)頁(yè),保證該網(wǎng)頁(yè)下載數(shù)據(jù)完整性;
[0027] 5)任務(wù)調(diào)度模塊啟動(dòng)解析引擎模塊,解析引擎模塊將符合過濾規(guī)則的外部鏈接 URL放入待爬取隊(duì)列中;
[0028] 6)任務(wù)調(diào)度模塊啟動(dòng)數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)模塊使用結(jié)構(gòu)化信息抽取的方法, 把抽取過后的內(nèi)容存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)庫(kù)中。
[0029] 與現(xiàn)有技術(shù)相比,本發(fā)明有以下優(yōu)點(diǎn):
[0030] ⑴、提高了網(wǎng)絡(luò)爬蟲的效率。通過運(yùn)用多線程提高爬取的并發(fā)度,通過結(jié)構(gòu)化信息 抽取的方法提高了抽取網(wǎng)頁(yè)信息的效率。
[0031] ⑵、本發(fā)明提出使用空間向量模型法可以爬取關(guān)于某一主題的網(wǎng)頁(yè)。
[0032] ⑶、本發(fā)明結(jié)合空間向量模型和模版法來智能自動(dòng)化抽取網(wǎng)頁(yè)的信息。
[0033] ⑷、本發(fā)明易于操作,成本低。只需要配置本系統(tǒng)的配置文件和幾臺(tái)Iinux服務(wù)器 就可以達(dá)到爬取百萬級(jí)的網(wǎng)頁(yè)數(shù)據(jù)量。
【附圖說明】
[0034] 圖1本發(fā)明系統(tǒng)架構(gòu)圖;
[0035] 圖2本發(fā)明結(jié)構(gòu)化信息抽取方法流程圖;
[0036] 圖3本發(fā)明系統(tǒng)流程圖。
【具體實(shí)施方式】
[0037] 實(shí)施例
[0038] 下面通過抓取優(yōu)酷劇集基本信息為例,詳細(xì)敘述本發(fā)明。
[0039] 優(yōu)酷網(wǎng)
[0040] I)http: "movie, youku. com,http: "tv. youku. com作為本系統(tǒng)優(yōu)酉告抓取的入口。
[0041] 2)定制本系統(tǒng)配置文件:流量控制、URL過濾規(guī)則、URL去重服務(wù)、URL歸一化、瀏 覽器引擎及監(jiān)控服務(wù)。
[0042] 3)優(yōu)酷網(wǎng)對(duì)于同一個(gè)IP地址,會(huì)限制訪問的頻率。把本地的抓取器通過代理,按 照每一個(gè)小時(shí)切換一次不同IP地址。這樣優(yōu)酷網(wǎng)站點(diǎn)就不會(huì)拒絕本系統(tǒng)抓取請(qǐng)求。
[0043] 4)按照本系統(tǒng)爬取任務(wù)優(yōu)先級(jí)設(shè)置從高到低:優(yōu)酷網(wǎng)URL爬取,優(yōu)酷網(wǎng)基本信息 頁(yè)面爬取,優(yōu)酷網(wǎng)播放信息頁(yè)面的爬取,優(yōu)酷網(wǎng)分集信息播放爬取,優(yōu)酷評(píng)論信息頁(yè)面的爬 取,優(yōu)酷網(wǎng)增量頁(yè)面的爬取。
[0044] 5)通過種子的 http://movie, youku. com, http://tv. youku. com URL,本系統(tǒng)通過 種子URL去發(fā)現(xiàn)指向外部鏈接的URL,并且讀取優(yōu)酷網(wǎng)配置文件URL過濾規(guī)則,過濾掉不符 合過濾規(guī)則的URL。把符合過濾規(guī)則的URL放入待爬取隊(duì)列中。
[0045] 6)對(duì)每一個(gè)URL進(jìn)行頁(yè)面下載。
[0046] 7)構(gòu)建視頻領(lǐng)域的關(guān)鍵詞詞典。詞典構(gòu)建通過數(shù)據(jù)堂提供的75個(gè)領(lǐng)域詞典,把詞 典看作是一個(gè)m維度的詞向量,記作
[0047] 6)對(duì)URL的頁(yè)面內(nèi)容分詞,把網(wǎng)頁(yè)內(nèi)容分為孤立的詞語。
[0048] 7)計(jì)算出每一個(gè)網(wǎng)頁(yè)詞語在詞典總出現(xiàn)的次數(shù)。
[0049] 10)每個(gè)詞語都有相應(yīng)的次數(shù);把每個(gè)詞語當(dāng)作一個(gè)維度,假設(shè)該網(wǎng)頁(yè)有η個(gè)詞 語,就把該網(wǎng)頁(yè)看作是一個(gè)η維的向量,α "
[0050] 11)計(jì)算網(wǎng)頁(yè)與詞典的相關(guān)度:
[0051] 12)本系統(tǒng)預(yù)先設(shè)置的閾值Θ為0.4。把步驟11)算出的結(jié)果大于0.4的該網(wǎng)頁(yè) 放入待結(jié)構(gòu)化抽取隊(duì)列中。
[0052] 13)本實(shí)施例中只對(duì)優(yōu)酷網(wǎng)劇集基本信息網(wǎng)頁(yè)構(gòu)建模板,所以本實(shí)施例只構(gòu)建基 本信息網(wǎng)頁(yè)的模板。注:實(shí)際生產(chǎn)環(huán)境需要構(gòu)建不止一個(gè)模板:如優(yōu)酷劇集基本信息頁(yè)面 模板、播放信息頁(yè)面的模板、分集播放信息頁(yè)面模板、評(píng)論信息頁(yè)面模板、優(yōu)酷聚集指數(shù)頁(yè) 面模板等。
[0053] 14)優(yōu)酷網(wǎng)劇集基本信息網(wǎng)頁(yè)模板:
[0054]
[0055] 15)通過上一步的模板,本系統(tǒng)自動(dòng)把網(wǎng)頁(yè)與模板匹配,匹配出來的信息存入到 xml文件中,存儲(chǔ)模板把xml文件存入到分布式存儲(chǔ)系統(tǒng)數(shù)據(jù)庫(kù)中。結(jié)構(gòu)化抽取出來的數(shù)據(jù) 樣例如下:
[0056]
[0057]
[0058] 16)通過上述步驟,就能把優(yōu)酷網(wǎng)劇集基本信息網(wǎng)頁(yè)爬取下來。
【主權(quán)項(xiàng)】
1. 一種基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)爬蟲系統(tǒng),其特征在于該系統(tǒng)包括基礎(chǔ)服務(wù)模塊、 抓取器及設(shè)置于抓取器內(nèi)的任務(wù)調(diào)度模塊、解析服務(wù)模塊、頁(yè)面下載模塊、頁(yè)面更新模塊及 數(shù)據(jù)存儲(chǔ)模塊,任務(wù)調(diào)度模塊控制抓取器抓取數(shù)據(jù)的流程;解析服務(wù)模塊解析網(wǎng)頁(yè)的內(nèi)容 并且提供自定義的模版抽取信息;頁(yè)面下載模塊下載網(wǎng)頁(yè)的源代碼,支持加載javascipt, 異步動(dòng)態(tài)加載的ajax以及form表單的頁(yè)面;頁(yè)面更新模塊獲取網(wǎng)頁(yè)更新過后的數(shù)據(jù)信息; 數(shù)據(jù)存儲(chǔ)模塊通過結(jié)構(gòu)化信息抽取的方法,把抽取過后的內(nèi)容存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)的數(shù) 據(jù)庫(kù)中;基礎(chǔ)服務(wù)模塊完成抓取器的流量控制、抓取器的監(jiān)控報(bào)警機(jī)制、URL去重服務(wù)、URL 歸一化服務(wù)及js/css資源管理服務(wù)。2. 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)爬蟲系統(tǒng),其特征在于所述結(jié)構(gòu)化信息抽取的方法包 括: A) 基于構(gòu)建詞典的空間向量模型算法,具體步驟如下: 1) 根據(jù)用戶想要抓取某領(lǐng)域的數(shù)據(jù)信息,預(yù)先構(gòu)建該領(lǐng)域關(guān)鍵詞的詞典,把該詞典看 作是一個(gè)m維的詞向量,記作0m; 2) 通過使用分詞工具,把網(wǎng)頁(yè)的文本內(nèi)容分為孤立的詞語; 3) 計(jì)算每一個(gè)詞語在詞典中出現(xiàn)次數(shù),詞語出現(xiàn)的次數(shù)越高就代表相關(guān)度越高; 4) 每個(gè)詞語都有相應(yīng)的次數(shù);把每個(gè)詞語當(dāng)作一個(gè)維度,假設(shè)該網(wǎng)頁(yè)有n個(gè)詞語,就把 該網(wǎng)頁(yè)看作是一個(gè)n維的向量; 5) 每一個(gè)網(wǎng)頁(yè)得到一個(gè)n維的詞向量,記作an;7)把網(wǎng)頁(yè)相關(guān)度S(an,大于預(yù)先設(shè)置的閾值0的網(wǎng)頁(yè),放入待結(jié)構(gòu)化抽取隊(duì)列 中; B) 構(gòu)建網(wǎng)頁(yè)模版,具體步驟如下: 1) 分析網(wǎng)頁(yè)html結(jié)構(gòu),網(wǎng)頁(yè)包括head標(biāo)簽和body標(biāo)簽; 2. Head標(biāo)簽中,目標(biāo)標(biāo)簽是title標(biāo)簽; 3. body標(biāo)簽中,目標(biāo)標(biāo)簽是p標(biāo)簽,a標(biāo)簽,form表單標(biāo)簽; 4) 把上述目標(biāo)標(biāo)簽組合在一起,完成網(wǎng)頁(yè)的模板; C) 結(jié)構(gòu)化信息抽取,具體步驟如下: 使用B)構(gòu)建的網(wǎng)頁(yè)模板去抽取A)空間向量模型算法得到的待抽取網(wǎng)頁(yè)中的網(wǎng)頁(yè)信 息,最終得到結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)以xml格式存儲(chǔ)到分布式系統(tǒng)數(shù)據(jù)庫(kù)中。3. 根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)爬蟲系統(tǒng),其特征在于所述抓取數(shù)據(jù)的流程如下: 1) 用戶給定種子URL,作為抓取互聯(lián)網(wǎng)網(wǎng)頁(yè)的入口; 2) 用戶個(gè)性化定制基礎(chǔ)服務(wù)配置文件,包括:流量控制、URL過濾規(guī)則、URL去重服務(wù)、 URL歸一化、瀏覽器引擎及監(jiān)控服務(wù); 3) 根據(jù)URL過濾規(guī)則,URL去重服務(wù),抓取符合條件的URL; 4) 頁(yè)面下載模塊對(duì)符合條件的URL逐一下載URL對(duì)應(yīng)頁(yè)面;采用多線程并發(fā)技術(shù)加快 下載頁(yè)面的速度;頁(yè)面下載模塊調(diào)用基礎(chǔ)服務(wù)中瀏覽器引擎,瀏覽器引擎通過調(diào)用chrome內(nèi)核加載植染javascript/ajax網(wǎng)頁(yè),保證該網(wǎng)頁(yè)下載數(shù)據(jù)完整性; 5) 任務(wù)調(diào)度模塊啟動(dòng)解析引擎模塊,解析引擎模塊將符合過濾規(guī)則的外部鏈接URL放 入待爬取隊(duì)列中; 6) 任務(wù)調(diào)度模塊啟動(dòng)數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)模塊使用結(jié)構(gòu)化信息抽取的方法,把抽 取過后的內(nèi)容存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)庫(kù)中。
【專利摘要】本發(fā)明公開了一種基于分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)爬蟲系統(tǒng),該系統(tǒng)包括基礎(chǔ)服務(wù)模塊、抓取器及設(shè)置于抓取器內(nèi)的任務(wù)調(diào)度模塊、解析服務(wù)模塊、頁(yè)面下載模塊、頁(yè)面更新模塊及數(shù)據(jù)存儲(chǔ)模塊,任務(wù)調(diào)度模塊控制抓取器抓取數(shù)據(jù)的流程;解析服務(wù)模塊解析網(wǎng)頁(yè)的內(nèi)容并且提供自定義的模版抽取信息;頁(yè)面下載模塊下載網(wǎng)頁(yè)的源代碼;頁(yè)面更新模塊獲取網(wǎng)頁(yè)更新過后的數(shù)據(jù)信息;數(shù)據(jù)存儲(chǔ)模塊通過結(jié)構(gòu)化信息抽取的方法,把抽取過后的內(nèi)容存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)庫(kù)中;基礎(chǔ)服務(wù)模塊完成抓取器的流量控制、抓取器的監(jiān)控報(bào)警機(jī)制、URL去重服務(wù)、URL歸一化服務(wù)及js/css資源管理服務(wù)。本發(fā)明的特點(diǎn):一是靈活的爬蟲方法,二是智能自動(dòng)化對(duì)網(wǎng)頁(yè)內(nèi)容信息結(jié)構(gòu)化抽取。
【IPC分類】G06F17/30
【公開號(hào)】CN105045838
【申請(qǐng)?zhí)枴緾N201510377049
【發(fā)明人】賀樑, 黃保荃, 楊燕
【申請(qǐng)人】華東師范大學(xué)
【公開日】2015年11月11日
【申請(qǐng)日】2015年7月1日