專利名稱:基于rss的多線程圖文信息同步爬取的控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)頁圖文信息的實時抓取,主要為網(wǎng)絡(luò)爬蟲技術(shù)領(lǐng)域。具體地,本發(fā)明涉及基于RSS的多線程圖文信息同步爬取控制系統(tǒng)以及相應(yīng)的控制方法。
背景技術(shù):
隨著Internet的發(fā)展,信息充斥于整個網(wǎng)絡(luò)環(huán)境中,為人們獲取信息提供了便捷,但是,如何從浩如煙海的大量數(shù)據(jù)中獲取需要的信息為我所用,是一個迫切需要解決的問題,網(wǎng)絡(luò)爬蟲技術(shù)即在此背景下應(yīng)運而生。網(wǎng)絡(luò)爬蟲是一個自動提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。然而,傳統(tǒng)爬蟲在實際應(yīng)用中具有一定的局限性,首先,對于不同領(lǐng)域、不同背景的用戶往往需要不同的檢索目的與需求,傳統(tǒng)爬蟲的返回結(jié)果具有普遍性而缺失針對性, 包含大量用戶不關(guān)心的網(wǎng)頁;其次,隨著萬維網(wǎng)的發(fā)展,不同數(shù)據(jù)類型的信息大量涌現(xiàn),如圖片、數(shù)據(jù)庫、音頻、視頻等,通過傳統(tǒng)爬蟲的固有方式無法完成此類信息含量密集且具有一定結(jié)構(gòu)數(shù)據(jù)的抓?。蛔詈?,通過傳統(tǒng)爬蟲的簡單抓取,缺乏一定的語義信息,難以支持語義信息的查詢。因此,本發(fā)明希望解決上述問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種的基于RSS的多線程圖文信息同步爬取的控制方法以及相應(yīng)的控制系統(tǒng)。根據(jù)本發(fā)明的一個方面,提供一種基于RSS的多線程圖文信息同步爬取控制方法,其用于對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,其特征在于,包括如下步驟
a.通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;
b.獲取所述目標(biāo)網(wǎng)頁的URL;
c.對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL;
d.將所述有用信息的URL進(jìn)行存儲;
e.下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;
f.針對所述步驟e中的每個網(wǎng)頁內(nèi)容執(zhí)行所述步驟a。根據(jù)本發(fā)明的另一個方面,還提供一種基于RSS的多線程圖文信息同步爬取控制系統(tǒng),其用于對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,其特征在于,包括
爬取子系統(tǒng),其用于基于RSS、以多線程方式對網(wǎng)頁內(nèi)圖文信息進(jìn)行同步爬?。?br>
本地數(shù)據(jù)庫,用于存儲與爬取過程以及爬取結(jié)果有關(guān)的內(nèi)容;
其特征還在于,所述爬取子系統(tǒng)包括如下裝置
第一分析裝置,其用于通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;第一獲取裝置,其用于獲取所述目標(biāo)網(wǎng)頁的URL ;
第二分析裝置,其用于對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL ;
第一存儲裝置,其用于將所述有用信息的URL進(jìn)行存儲;
下載裝置,其用于下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;以及第一控制裝置,其用于控制所述第一分析裝置針對所述下載裝置所下載的每個網(wǎng)頁內(nèi)容進(jìn)行分析。根據(jù)本發(fā)明的又一個方面,上述基于RSS的多線程圖文信息同步爬取控制方法還可以通過如下步驟實現(xiàn)
第一步對抓取目標(biāo)進(jìn)行定義及描述
本發(fā)明基于抓取目標(biāo)的數(shù)據(jù)模式進(jìn)行描述,將網(wǎng)頁信息抽象分類為文字格式、圖片格式,分類進(jìn)行抓取。文字信息主要描述為文字內(nèi)容textContent、文字格式textFormat。 圖片信息主要描述為圖片名picName、圖片對象picObj、圖片格式picFormat、圖片大小 picSize,對于不符合建立文件夾規(guī)則的圖片進(jìn)行圖片名修改并存儲對應(yīng)信息。 第二步構(gòu)建本地索引數(shù)據(jù)庫IndexDB
在本地建立數(shù)據(jù)庫IndexDB,用于存儲搜索信息,避免信息的重復(fù)下載及提高索引速度。本步驟中定義數(shù)據(jù)格式、數(shù)據(jù)表,數(shù)據(jù)表包括下載URL表urlPage、文字信息索引表 wordlndex、圖片信息表piclnfo、圖片名修改存儲表picSHAl。第三步基于RSS特征對網(wǎng)頁數(shù)據(jù)分析過濾
在抓取信息之前,通過RSS文檔分析程序分析XML文件,通過分析<url>及</url>標(biāo)簽內(nèi)部信息,獲取下載網(wǎng)頁的URL,針對相應(yīng)的需求對網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略,獲取有用信息的URL,并存儲于數(shù)據(jù)庫表urlPage中,以便索引下載,提高搜索速度。第四步利用超鏈接信息權(quán)重建立獲取策略
將需要下載的網(wǎng)頁分為已下載與待下載兩部分,已下載的網(wǎng)頁隊列用CrawledPages 存儲,待下載的網(wǎng)頁隊列用WaitPages存儲,定義從待下載網(wǎng)頁隊列至已下載網(wǎng)頁隊列的策略如下給定一個網(wǎng)頁W,定義指向該網(wǎng)頁的鏈接數(shù)為Links (W),實際實現(xiàn)中,Links (W) 等于位于已下載網(wǎng)頁隊列CrawledPages中頁面指向待下載網(wǎng)頁隊列WaitPages的網(wǎng)頁信息的超鏈接數(shù)。對于位于WaitPages隊列中的數(shù)據(jù),比較Links (W)大小,優(yōu)先選擇Links (W) 較大的網(wǎng)頁添加至CrawledPages隊列,以提高下載網(wǎng)頁與主題的相關(guān)性,提高下載效率。第五步多線程分類獲取信息
采用多線程同步技術(shù),首先啟動主線程,用于獲取URL信息,對分析獲取到的URL信息加入數(shù)據(jù)庫中,30秒后添加副線程從數(shù)據(jù)庫中取出所需的URL,針對文字信息、圖片信息的不同數(shù)據(jù)格式,將需要下載的URL進(jìn)行分類,對于文字信息的URL,直接用于后期下載,轉(zhuǎn)至第六步。對于圖片信息的URL,有針對性地獲取包含圖片信息的內(nèi)容,并將此內(nèi)容抽取簡化, 將數(shù)據(jù)量控制在最小,并能夠在小數(shù)據(jù)量中有效獲取圖片信息,提高存取效率,增強信息獲取的有效性,轉(zhuǎn)至第七步。第六步文字信息URL解析獲取
將一定時間段內(nèi)需要解析的數(shù)據(jù)URL存于緩沖區(qū)Buffer中,以便提高存取速度。針對包含文字信息的URL,通過文字信息解析類TextCrawl進(jìn)行解析,存儲正在解析的URL,防止中途出現(xiàn)斷點,以便及時恢復(fù)。解析信息獲取后,將文字信息存儲為對應(yīng)的XML文件,并在數(shù)據(jù)庫表wordlndex中記錄信息。第七步圖片信息解析獲取
對于包含圖片信息的URL,通過PicCrawl解析類進(jìn)行解析,抓取含有 〈ClaSS=〃image〃>、〈/class〉的標(biāo)簽信息,解析獲取圖片實際地址,索引至實際地址抓取圖片,并獲取相應(yīng)圖片信息,包括圖片名picName、圖片對象picObj、圖片格式picFormat、圖片大小picSize,存儲于圖片信息表piclnfo中。對應(yīng)成功下載的圖片,進(jìn)行本地存儲,建立對應(yīng)的文件夾。若存在不符合命名規(guī)則的情況,則進(jìn)入第八步,若不存在命名問題,則進(jìn)入第九步。第八步不規(guī)則命名SHAl處理
不符合建立文件規(guī)則的圖片名稱,將相應(yīng)的名稱經(jīng)過SHAl處理。對于長度小于2~64位的消息,SHAl會產(chǎn)生一個160位的消息摘要,顯示的是40位16進(jìn)制編碼。SHAl算法需要將輸入的字符串的二進(jìn)制碼長度進(jìn)行補充,直到長度滿足對512取模后余數(shù)是448,之后添加表示長度的64位二進(jìn)制碼,總長度為512的倍數(shù),然后把整個消息分成一個一個512位的數(shù)據(jù)塊,分別處理每一個數(shù)據(jù)塊,經(jīng)過編碼過程中的邏輯、算術(shù)運算從而得到消息摘要, 輸出40位16進(jìn)制編碼,從而解決本地文件無法建立的問題。對應(yīng)的數(shù)據(jù)庫picSHAl表中存儲原始圖片名與SHAl之后的圖片名對應(yīng)關(guān)系,從而保證命名對應(yīng)。第九步文字、圖片信息整合統(tǒng)一
對于同一頁面既有文字又有圖片信息的情況,分別爬取相應(yīng)的文字、圖片信息后,將文字、圖片信息進(jìn)行實時整合統(tǒng)一,尤其針對圖片名被SHAl修改的頁面,通過解析網(wǎng)頁源代碼,修改對應(yīng)<class=〃image〃>、〈/class〉標(biāo)簽內(nèi)的圖片名信息為修改后的SHAl名,保證網(wǎng)頁信息整合后不存在因信息修改而無法匹配的情況。第十步一次循環(huán)下載已完畢,進(jìn)入下一循環(huán)下載過程。與背景技術(shù)相比,本發(fā)明至少具有以下優(yōu)點
(I)適宜的查全率,較高的查準(zhǔn)率。(2)功能模塊化,可移植性能高,對于不同需求的用戶可提供適宜信息的獲取策略,最大程度的匹配用戶需求。(3)具有針對性,針對網(wǎng)絡(luò)環(huán)境中存在的不同數(shù)據(jù)類型信息,包括文字信息與圖片信息,進(jìn)行分類下載,并在數(shù)據(jù)庫中記錄分類信息。(4)具有實時性,對于網(wǎng)頁信息更新,能夠?qū)崟r地獲取所需內(nèi)容,保證獲取的信息為當(dāng)前網(wǎng)絡(luò)最新信息。(5)具有可維護(hù)性,對相關(guān)信息進(jìn)行數(shù)據(jù)庫記錄與檢索,若遇斷點則可隨時停止并根據(jù)記錄信息恢復(fù)系統(tǒng)運行,重新開始獲取,從而保證系統(tǒng)的可維護(hù)性及數(shù)據(jù)的完整性。
通過閱讀參照以下附圖對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、 目的和優(yōu)點將會變得更明顯
圖I示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的不意圖;圖2示出根據(jù)本發(fā)明的第二實施例的,基于RSS的多線程圖文信息同步爬取控制方法的不意圖3示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制系統(tǒng)的結(jié)構(gòu)不意圖4示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中,作為樣例的“義勇軍進(jìn)行曲”在維基百科RSS中的表現(xiàn)形式的示意圖5示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中解析網(wǎng)頁源代碼后所獲得的網(wǎng)頁正文的示意圖6示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中XML文件的示意圖;以及
圖7示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中網(wǎng)頁源代碼中圖片信息的示意圖。
具體實施例方式本發(fā)明的目的是提出一種基于RSS技術(shù)的多線程網(wǎng)頁信息同步抓取方法,構(gòu)造聚焦爬蟲,通過廣度優(yōu)先策略對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,以利用超鏈接信息權(quán)重貢獻(xiàn),改進(jìn)網(wǎng)頁爬行器的搜索策略,有效地過濾抽取,最大限度地提高匹配性及快捷性。尤其對于傳統(tǒng)爬蟲無法很好解決的圖片信息數(shù)據(jù),進(jìn)行有針對性的分析處理,并且保證圖文信息有效地同步實時獲取,使信息抓取更為完善。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是針對需要抓取的網(wǎng)絡(luò)信息,分析文字、圖片的不同特征,通過RSS文檔分析程序?qū)ML文件進(jìn)行解析,獲取所需信息所屬的 URL,定位于數(shù)據(jù)庫中統(tǒng)一管理,通過廣度優(yōu)先策略,針對需要提取的URL,擴展抓取,利用超鏈接信息權(quán)重建立獲取策略,并通過網(wǎng)頁解析將圖片文字信息分類下載,文字信息本地文件存儲,圖片信息加入數(shù)據(jù)庫以備檢索并在本地分類存儲,對于在本地存儲過程中遇到的文件名命名問題作出相應(yīng)的可移植性處理,最后整合圖文信息,做到圖文同步實時。
具體地,圖I示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的示意圖。具體地,首先執(zhí)行步驟SlOl :通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件。本領(lǐng)域技術(shù)人員理解,在確定一個目標(biāo)網(wǎng)頁文件后,可以通過多種方式分析該網(wǎng)頁文件。具體地,在本實施例中通過RSS文檔分析程序來實現(xiàn)分析待爬取的目標(biāo)網(wǎng)頁文件的過程。本領(lǐng)域技術(shù)人員可以參考RSS有關(guān)的文獻(xiàn)實現(xiàn)這一過程,例如至少可以參考《RSS AND Atom IN ACTION (中文版)》((美)約翰遜(Johnson, D)著,李秀忠譯/2007年11月/ 電子工業(yè)出版社),在此不予贅述。其次進(jìn)入步驟S102 :獲取所述目標(biāo)網(wǎng)頁的URL。本領(lǐng)域技術(shù)人員理解,一個目標(biāo)網(wǎng)頁中通常包含了多個指向其他網(wǎng)頁的URL(UniqueResourceLocation,統(tǒng)一資源定位符),通過這些URL可以進(jìn)一步地訪問與這些URL對應(yīng)的網(wǎng)頁。在分析所述目標(biāo)網(wǎng)頁之后,可以根據(jù)分析結(jié)果獲取該目標(biāo)網(wǎng)頁內(nèi)的URL0例如“http:"www. baidu. com”或者./ipserver/”, 這些都是有效的URL,并將作為所述步驟S102的結(jié)果。然后執(zhí)行步驟S103 :對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL。在上述步驟S102的基礎(chǔ)上,本步驟將有用的URL進(jìn)一步分析。例如,上述步驟S102中所列舉的“http://www. baidu. com”屬于一個無用信息,其與目標(biāo)網(wǎng)頁的內(nèi)容并無直接關(guān)聯(lián),而· /ipserver/”則屬于有用信息。本領(lǐng)域技術(shù)人員理解,可以通過多種方式確定所述“有用信息”,例如將與目標(biāo)網(wǎng)頁的URL信息存在關(guān)聯(lián)的URL作為有用信息的URL,例如同屬于目標(biāo)網(wǎng)頁下屬的網(wǎng)頁可以作為有用信息的URL。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,廣度優(yōu)先策略優(yōu)選地對一個網(wǎng)頁內(nèi)的同屬于一個層級的URL進(jìn)行搜索,在搜索其中一個URL對應(yīng)的網(wǎng)頁時將獲得在該網(wǎng)頁內(nèi)的更多URL (即子URL),而暫時不對這些子 URL進(jìn)行搜索,而是將這些子URL存儲在一個隊列中,并進(jìn)一步地搜索上述同屬于一個層級的下一個URL,并相應(yīng)地對該下一個URL內(nèi)所獲得的子URL存儲入隊列。直到上述同屬于一個層級的URL全部搜索完畢,則才從隊列中對屬于下一個層級的子URL進(jìn)行搜索,并重復(fù)上述過程。這樣的廣度優(yōu)先搜索策略與通常的深度優(yōu)先搜索策略不同,本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)可以理解。在此不予贅述。接下來進(jìn)入步驟S104 :將所述有用信息的URL進(jìn)行存儲。進(jìn)一步地,在本步驟中, 優(yōu)選地,將上述步驟中搜索到的有用信息URL存儲至數(shù)據(jù)庫中,例如優(yōu)選地存儲至一個數(shù)據(jù)表中,例如我們將其命名為URLPage。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述用于存儲該有用信息URL的數(shù)據(jù)表中可以存儲多種信息,例如每個URL對應(yīng)的內(nèi)部序號、URL的優(yōu)先級、URL 地址、URL存儲時間、URL搜索策略等等,從而根據(jù)這些信息可以確定針對一個有用信息URL 的搜索策略等,在此不予贅述。然后進(jìn)入步驟S105 :下載所述步驟S104中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容。根據(jù)上述步驟S104確定了若干個有用信息的URL后,就可以使用根據(jù)下載該URL 對應(yīng)的網(wǎng)頁內(nèi)容,例如可以通過爬蟲工具來下載該網(wǎng)頁內(nèi)容。本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)可以實現(xiàn)這樣的過程,在此不予贅述。最后執(zhí)行步驟S106 :針對所述步驟S105中的每個網(wǎng)頁內(nèi)容執(zhí)行所述步驟S101。 上述步驟SlOf S105對一個目標(biāo)網(wǎng)頁的內(nèi)容進(jìn)行了分析處理,但該目標(biāo)網(wǎng)頁內(nèi)的子URL對應(yīng)的網(wǎng)頁內(nèi)容還沒有進(jìn)一步地處理。因此,優(yōu)選地,在本實施例中,針對每個子URL對應(yīng)的網(wǎng)頁內(nèi)容再次執(zhí)行步驟SlOf S105,直至所述流程被中止,或者所有網(wǎng)頁內(nèi)容都已經(jīng)搜索完畢。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,所述步驟S105可以包括如下步驟
el.從未下載集合中選擇下載優(yōu)先級最高的網(wǎng)頁作為待下載網(wǎng)頁,其中,所述未下載集合包括所述所有未下載的有用信息的URL對應(yīng)的網(wǎng)頁; e2.下載所述待下載網(wǎng)頁;
e3.將所述待下載網(wǎng)頁排除于所述未下載集合之外,并針對所述未下載集合再次執(zhí)行所述步驟el,直至所述未下載集合為空集。本領(lǐng)域技術(shù)人員理解,待下載網(wǎng)頁可以被存儲在一個隊列中,根據(jù)本發(fā)明提供的控制方法,可以從該隊列中不斷地取出URL信息,并根據(jù)該信息下載該待下載網(wǎng)頁。該隊列可以采用先進(jìn)先出的方式,也可以后進(jìn)先出的方式,這并不影響本發(fā)明的實質(zhì)內(nèi)容,在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,上述步驟el包括步驟“比較所述未下載集合中所有網(wǎng)頁的超鏈接指數(shù),并將所述超鏈接指數(shù)最高的一個網(wǎng)頁作為所述下載優(yōu)先級最高的網(wǎng)頁,其中,一個網(wǎng)頁的所述超鏈接指數(shù)為已下載集合中的所有網(wǎng)頁指向該網(wǎng)頁的超鏈接數(shù),其中,所述已下載集合包括所述有用信息的URL對應(yīng)的網(wǎng)頁中所有已下載的部分”。這樣的過程確定了在一批待下載URL中,如何確定各URL的優(yōu)先級。具體地,在本變化例中,根據(jù)超鏈接指數(shù)指標(biāo)來確定下載優(yōu)先級最高的網(wǎng)頁,本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)可以理解本變化例,在此不予贅述。而在另一個變化例中,所述步驟el包括步驟“比較所述未下載集合中所有網(wǎng)頁的超鏈接數(shù)量,并將所述超鏈接數(shù)量最大的一個網(wǎng)頁作為所述下載優(yōu)先級最高的網(wǎng)頁,其中, 所述超鏈接數(shù)量為一個網(wǎng)頁中所包含的所有超鏈接的數(shù)量”。類似地,這樣的變化例中仍然確定優(yōu)先級最高的網(wǎng)頁予以下載,相應(yīng)地,采用超鏈接數(shù)量作為衡量優(yōu)先級高低的指標(biāo),在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,在上述步驟S105以及相應(yīng)地變化例中,所述“下載網(wǎng)頁內(nèi)容”的步驟包括如下步驟
i.確定所述待下載網(wǎng)頁的內(nèi)容分類;ii.若所述內(nèi)容分類指示所述待下載網(wǎng)頁為文字內(nèi)容的網(wǎng)頁,則直接下載所述待下載網(wǎng)頁;若所述內(nèi)容分類指示所述待下載網(wǎng)頁為圖片內(nèi)容的網(wǎng)頁,則有針對性地獲取包含圖片信息的內(nèi)容,并將此內(nèi)容抽取簡化,將數(shù)據(jù)量控制在有效獲取圖片信息的最小范圍。在本變化例中,對所有待下載網(wǎng)頁進(jìn)行分類。由于包含文字內(nèi)容的網(wǎng)頁與包含圖片內(nèi)容的網(wǎng)頁存在本質(zhì)的不同,所以在上述步驟ii中對不同的網(wǎng)頁采用不同的存儲方式。 具體地,針對文字內(nèi)容的網(wǎng)頁直接進(jìn)行下載;而針對圖片內(nèi)容的網(wǎng)頁,則需要相應(yīng)地予以簡化,具體如上述步驟ii所示,在此不予贅述。更進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,優(yōu)選地,所述步驟i、步驟ii通過一個副線程完成,所述步驟d通過一個主線程完成。而在另一個變化例中,所述步驟ii可以通過多個副線程完成,例如針對每個網(wǎng)頁都采用一個副線程,從而可以有效地管理針對不同網(wǎng)頁進(jìn)行下載的過程。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,在圖I所示步驟S106之后還包括如下步驟g.解析所述被下載的網(wǎng)頁內(nèi)容,將解析結(jié)果相適應(yīng)地存儲,其中,所述解析結(jié)果將作為搜索引擎的搜索依據(jù)。在此步驟中,對網(wǎng)頁內(nèi)容予以相應(yīng)地存儲,例如也存儲在一個本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)以及上述實施例可以實現(xiàn)本變化例,在此不予贅述。更進(jìn)一步地,上述步驟g包括如下步驟gl.確定所述網(wǎng)頁內(nèi)容的內(nèi)容分類;g2. 若所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為文字內(nèi)容的網(wǎng)頁,則通過文字信息解析類TextCrawl 進(jìn)行解析,并將解析結(jié)果相適應(yīng)地存儲;若所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為圖片內(nèi)容的網(wǎng)頁,則通過PicCrawl解析類進(jìn)行解析,解析獲取所述圖片的實際地址,索引至所述實際地址抓取所述圖片,并獲取相應(yīng)圖片信息。本領(lǐng)域技術(shù)人員理解,針對文字內(nèi)容的網(wǎng)頁,通過文字信息解析類TextCrawl進(jìn)行解析,并相應(yīng)地將解析結(jié)果予以存儲。而針對圖片內(nèi)容的網(wǎng)頁,則通過PicCrawl解析類進(jìn)行解析,獲取該圖片的實際地址后保存該圖片。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,所述解析類TextCrawl、PicCrawl可以借助現(xiàn)有技術(shù)予以實現(xiàn), 也可以由技術(shù)人員根據(jù)實施需求來具體實現(xiàn),這并不影響本發(fā)明的實質(zhì)內(nèi)容,在此不予贅述。
再進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,所述步驟g2中針對所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為文字內(nèi)容的網(wǎng)頁的情況下還包括如下步驟將所述網(wǎng)頁內(nèi)容中對應(yīng)的文字信息存儲為對應(yīng)的XML文件。即上述變化例中,文字內(nèi)容均被存儲為XML文件, 例如圖6所示內(nèi)容,在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,所述步驟g2中針對所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為圖片內(nèi)容的網(wǎng)頁的情況下還包括如下步驟
-判斷所述圖片是否被成功抓??;
-若所述圖片被成功抓取,則在本地建立文件夾,并相應(yīng)地將所述圖片存儲于對應(yīng)的文件夾內(nèi)。本領(lǐng)域技術(shù)人員理解,對于圖片內(nèi)容,相應(yīng)地獲取該圖片對應(yīng)的網(wǎng)絡(luò)地址,進(jìn)一步地下載該圖片后將其存儲在與該圖片對應(yīng)的文件夾內(nèi)。本領(lǐng)域技術(shù)人員理解,在本變化例中,為了以后調(diào)取方便,將圖片存儲在一個與其文件名對應(yīng)的文件夾內(nèi);而在另一個變化例中,也可以以其他方式進(jìn)行存儲,例如將所有圖片均存儲在一個統(tǒng)一的文件夾中,而通過對圖片文件的具體命名來區(qū)分不同的圖片。本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)可以實現(xiàn)所述變化例,在此不予贅述。更進(jìn)一步地,針對圖片可能存在不規(guī)則命名的情況,還可以通過另一個變化例來實現(xiàn)對圖片進(jìn)行保存的過程,例如,上述抓取所述圖片的步驟可以包括如下步驟g21.判斷所述圖片的名稱中是否不規(guī)則;g22.若所述圖片的名稱中不規(guī)則,則將所述圖片的名稱更改為可以被所述操作系統(tǒng)(例如基于Mediawiki的系統(tǒng))所認(rèn)可的字符。更進(jìn)一步地,所述步驟g22中的將所述圖片的名稱更改為可以被所述操作系統(tǒng)所認(rèn)可的字符的步驟包括如下步驟將所述圖片的名稱以SHAl算法進(jìn)行運算,并將運算后結(jié)果作為所述更改后的圖片名稱。具體地,本領(lǐng)域技術(shù)人員理解,如果圖片名稱不規(guī)則,無法直接進(jìn)行保存的話,則可以通過一種特定的方式對圖片名稱進(jìn)行整理、變形,從而使得變形后的名稱可以作為規(guī)則名稱予以保存。具體地,在本變化例中,對不規(guī)則圖片名稱依據(jù)SHAl算法進(jìn)行處理,并將處理后的結(jié)果作為變形后的圖片名稱。具體地,本領(lǐng)域技術(shù)人員結(jié)合現(xiàn)有技術(shù)可以實現(xiàn)本變化例,例如至少可以參考關(guān)于SHAl的書籍實現(xiàn),在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,在一個變化例中,在所述抓取所述圖片的步驟中,在所述步驟g22之前或所述步驟g22之后還包括如下步驟g23.將所述圖片的原始圖片名稱與經(jīng)SHAl運算之后的圖片名稱相適應(yīng)地存儲,以便可以獲得兩者唯一的對應(yīng)關(guān)系。 本領(lǐng)域技術(shù)人員理解,上述圖片名稱被變形后,則存在被存儲在物理磁盤內(nèi)的圖片名稱與引用該圖片的網(wǎng)頁內(nèi)的信息不同,這可能會導(dǎo)致網(wǎng)頁信息無法被正確地讀取。所以,為了避免這樣的錯誤,通過該步驟g23來處理圖片名稱被變形的問題。例如通過一個數(shù)據(jù)表來存儲變形后的圖片名稱以及變形前的圖片名稱,從而可以實現(xiàn)上述目的。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,若一個網(wǎng)頁內(nèi)即存在文字內(nèi)容,又存在圖片內(nèi)容,則其情況比較復(fù)雜。優(yōu)選地,在一個變化例中,所述步驟g還包括如下步驟g3.若所述網(wǎng)頁內(nèi)容既包括文字內(nèi)容也包括圖片內(nèi)容,則依據(jù)所述步驟g2分別爬取相應(yīng)的文字、圖片信息后,將所述文字、圖片信息實時地進(jìn)行合并存儲。本領(lǐng)域技術(shù)人員可以參考上述實施例對此過程予以處理,例如優(yōu)選地通過兩個步驟分別處理文字內(nèi)容以及圖片內(nèi)容,在此不予贅述。更進(jìn)一步地,在本變化例中,所述將所述文字、圖片信息實時地進(jìn)行合并存儲的步驟包括如下步驟判斷所述圖片的名稱是否被更改過;若所述圖片的名稱被更改過,則解析所述網(wǎng)頁對應(yīng)的源代碼,修改所述源代碼中與所述圖片的原始圖片名稱為所述經(jīng)修改后的圖片名稱。參考上述各實施例以及變化例,本領(lǐng)域技術(shù)人員理解,上述圖片信息包括如下信息中的任一種或任多種圖片名;圖片對象;圖片格式;以及圖片大小。參考上述各實施例以及變化例,本領(lǐng)域技術(shù)人員理解,上述文字信息包括如下信息中的任一種或任多種文字內(nèi)容;以及文字格式。參考上述各實施例以及變化例,本領(lǐng)域技術(shù)人員理解,上述各種信息優(yōu)選地被存儲在本地數(shù)據(jù)庫中,而該本地數(shù)據(jù)庫包括多個數(shù)據(jù)表,例如優(yōu)選地包括至少如下數(shù)據(jù)表中的任一個下載URL表(URLPage);文字信息索引表(wordlndex);圖片信息表(piclnfo); 圖片名稱修改存儲表(PicSHAl)等,在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員還理解,所述信息還可以被存儲于文件中,例如可以參考各種算法來實現(xiàn)通過文本文件存儲各種數(shù)據(jù)的過程,從而可以提高檢索的效率,在此不予贅述。
圖2示出根據(jù)本發(fā)明的第二實施例的,基于RSS的多線程圖文信息同步爬取控制方法的示意圖。具體地,在本實施例中,所述需要抓取的信息同時包含文字、圖片信息,且圖片文件名存在不規(guī)則現(xiàn)象。本領(lǐng)域技術(shù)人員理解,這是一個相對復(fù)雜的情況。針對需要抓取的網(wǎng)絡(luò)信息,分析文字、圖片的不同特征,通過RSS文檔分析程序?qū)ML文件進(jìn)行解析,獲取所需信息所屬的URL,定位于數(shù)據(jù)庫中統(tǒng)一管理,通過廣度優(yōu)先策略,針對需要提取的URL,擴展抓取,利用超鏈接信息權(quán)重建立獲取策略,并通過網(wǎng)頁解析將圖片文字信息分類下載,文字信息本地文件存儲,圖片信息加入數(shù)據(jù)庫以備檢索并在本地分類存儲,對于在本地存儲過程中遇到的文件名命名問題作出相應(yīng)的可移植性處理,最后整合圖文信息,做到圖文同步實時。具體地,在本實施例中,通過下述過程實現(xiàn)本發(fā)明提供的抓取(爬取)過程
第一步對抓取目標(biāo)進(jìn)行定義及描述
本發(fā)明基于抓取目標(biāo)的數(shù)據(jù)模式進(jìn)行描述,將網(wǎng)頁信息抽象分類為文字格式、圖片格式,分類進(jìn)行抓取。文字信息主要描述為文字內(nèi)容textContent、文字格式textFormat。 圖片信息主要描述為圖片名picName、圖片對象picObj、圖片格式picFormat、圖片大小 picSize,對于不符合建立文件夾規(guī)則的圖片進(jìn)行圖片名修改并存儲對應(yīng)信息。第二步構(gòu)建本地索引數(shù)據(jù)庫IndexDB
在本地建立數(shù)據(jù)庫IndexDB,用于存儲搜索信息,避免信息的重復(fù)下載及提高索引速度。本步驟中定義數(shù)據(jù)格式、數(shù)據(jù)表,數(shù)據(jù)表包括下載URL表urlPage、文字信息索引表 wordlndex、圖片信息表piclnfo、圖片名修改存儲表picSHAl。第三步基于RSS特征對網(wǎng)頁數(shù)據(jù)分析過濾
在抓取信息之前,通過RSS文檔分析程序分析XML文件,通過分析<url>及</url>標(biāo)簽內(nèi)部信息,獲取下載網(wǎng)頁的URL,針對相應(yīng)的需求對網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略,獲取有用信息的URL,并存儲于數(shù)據(jù)庫表urlPage中,以便索引下載,提高搜索速度。第四步利用超鏈接信息權(quán)重建立獲取策略
將需要下載的網(wǎng)頁分為已下載與待下載兩部分,已下載的網(wǎng)頁隊列用CrawledPages存儲,待下載的網(wǎng)頁隊列用WaitPages存儲,定義從待下載網(wǎng)頁隊列至已下載網(wǎng)頁隊列的策略如下給定一個網(wǎng)頁W,定義指向該網(wǎng)頁的鏈接數(shù)為Links (W),實際實現(xiàn)中,Links (W) 等于位于已下載網(wǎng)頁隊列CrawledPages中頁面指向待下載網(wǎng)頁隊列WaitPages的網(wǎng)頁信息的超鏈接數(shù)。對于位于WaitPages隊列中的數(shù)據(jù),比較Links (W)大小,優(yōu)先選擇Links (W) 較大的網(wǎng)頁添加至CrawledPages隊列,以提高下載網(wǎng)頁與主題的相關(guān)性,提高下載效率。第五步多線程分類獲取信息
采用多線程同步技術(shù),首先啟動主線程,用于獲取URL信息,對分析獲取到的URL信息加入數(shù)據(jù)庫中,30秒后添加副線程從數(shù)據(jù)庫中取出所需的URL,針對文字信息、圖片信息的不同數(shù)據(jù)格式,將需要下載的URL進(jìn)行分類,對于文字信息的URL,直接用于后期下載,轉(zhuǎn)至第六步。第六步文字信息URL解析獲取
將一定時間段內(nèi)需要解析的數(shù)據(jù)URL存于緩沖區(qū)Buffer中,以便提高存取速度。針對包含文字信息的URL,通過文字信息解析類TextCrawl進(jìn)行解析,存儲正在解析的URL,防止中途出現(xiàn)斷點,以便及時恢復(fù)。解析信息獲取后,將文字信息存儲為對應(yīng)的XML文件,并在數(shù)據(jù)庫表wordlndex中記錄信息。第七步圖片信息解析獲取
對于包含圖片信息的URL,通過PicCrawl解析類進(jìn)行解析,抓取含有 〈ClaSS=〃image〃>、〈/class〉的標(biāo)簽信息,解析獲取圖片實際地址,索引至實際地址抓取圖片,并獲取相應(yīng)圖片信息,包括圖片名picName、圖片對象picObj、圖片格式picFormat、圖片大小picSize,存儲于圖片信息表piclnfo中。測試實例存在不符合命名規(guī)則的情況,則進(jìn)入第八步。第八步不規(guī)則命名SHAl處理
不符合建立文件規(guī)則的圖片名稱,將相應(yīng)的名稱經(jīng)過SHAl處理。對于長度小于2~64位的消息,SHAl會產(chǎn)生一個160位的消息摘要,顯示的是40位16進(jìn)制編碼。SHAl算法需要將輸入的字符串的二進(jìn)制碼長度進(jìn)行補充,直到長度滿足對512取模后余數(shù)是448,之后添加表示長度的64位二進(jìn)制碼,總長度為512的倍數(shù),然后把整個消息分成一個一個512位的數(shù)據(jù)塊,分別處理每一個數(shù)據(jù)塊,經(jīng)過編碼過程中的邏輯、算術(shù)運算從而得到消息摘要, 輸出40位16進(jìn)制編碼,從而解決本地文件無法建立的問題。對應(yīng)的數(shù)據(jù)庫picSHAl表中存儲原始圖片名與SHAl之后的圖片名對應(yīng)關(guān)系,從而保證命名對應(yīng)。第九步文字、圖片信息整合統(tǒng)一
對于同一頁面既有文字又有圖片信息的情況,分別爬取相應(yīng)的文字、圖片信息后,將文字、圖片信息進(jìn)行實時整合統(tǒng)一,尤其針對圖片名被SHAl修改的頁面,通過解析網(wǎng)頁源代碼,修改對應(yīng)<class=〃image〃>、〈/class>標(biāo)簽內(nèi)的圖片名信息為修改后的SHAl名,保證網(wǎng)頁信息整合后不存在因信息修改而無法匹配的情況。第十步一次循環(huán)下載已完畢。進(jìn)一步地,參考上述圖2所示實施例,本領(lǐng)域技術(shù)人員理解,在一個變化例中,當(dāng)需要抓取的信息僅包含文字信息,其抓取過程具體如下方式實現(xiàn)
針對需要抓取的網(wǎng)絡(luò)信息,分析文字、圖片的不同特征,通過RSS文檔分析程序?qū)ML 文件進(jìn)行解析,獲取所需信息所屬的URL,定位于數(shù)據(jù)庫中統(tǒng)一管理,通過廣度優(yōu)先策略,針對需要提取的URL,擴展抓取,利用超鏈接信息權(quán)重建立獲取策略,并通過網(wǎng)頁解析將圖片文字信息分類下載,文字信息本地文件存儲,圖片信息加入數(shù)據(jù)庫以備檢索并在本地分類存儲,對于在本地存儲過程中遇到的文件名命名問題作出相應(yīng)的可移植性處理,最后整合圖文信息,做到圖文同步實時。所述的方法的實現(xiàn)過程如下
第一步對抓取目標(biāo)進(jìn)行定義及描述
本發(fā)明基于抓取目標(biāo)的數(shù)據(jù)模式進(jìn)行描述,將網(wǎng)頁信息抽象分類為文字格式、圖片格式,分類進(jìn)行抓取。文字信息主要描述為文字內(nèi)容textContent、文字格式textFormat。 圖片信息主要描述為圖片名picName、圖片對象picObj、圖片格式picFormat、圖片大小 picSize,對于不符合建立文件夾規(guī)則的圖片進(jìn)行圖片名修改并存儲對應(yīng)信息。第二步構(gòu)建本地索引數(shù)據(jù)庫IndexDB
在本地建立數(shù)據(jù)庫IndexDB,用于存儲搜索信息,避免信息的重復(fù)下載及提高索引速度。本步驟中定義數(shù)據(jù)格式、數(shù)據(jù)表,數(shù)據(jù)表包括下載URL表urlPage、文字信息索引表 wordlndex、圖片信息表piclnfo、圖片名修改存儲表picSHAl。第三步基于RSS特征對網(wǎng)頁數(shù)據(jù)分析過濾
在抓取信息之前,通過RSS文檔分析程序分析XML文件,通過分析<url>及</url>標(biāo)簽內(nèi)部信息,獲取下載網(wǎng)頁的URL,針對相應(yīng)的需求對網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略,獲取有用信息的URL,并存儲于數(shù)據(jù)庫表urlPage中,以便索引下載,提高搜索速度。第四步利用超鏈接信息權(quán)重建立獲取策略
將需要下載的網(wǎng)頁分為已下載與待下載兩部分,已下載的網(wǎng)頁隊列用CrawledPages 存儲,待下載的網(wǎng)頁隊列用WaitPages存儲,定義從待下載網(wǎng)頁隊列至已下載網(wǎng)頁隊列的策略如下給定一個網(wǎng)頁W,定義指向該網(wǎng)頁的鏈接數(shù)為Links (W),實際實現(xiàn)中,Links (W) 等于位于已下載網(wǎng)頁隊列CrawledPages中頁面指向待下載網(wǎng)頁隊列WaitPages的網(wǎng)頁信息的超鏈接數(shù)。對于位于WaitPages隊列中的數(shù)據(jù),比較Links (W)大小,優(yōu)先選擇Links (W) 較大的網(wǎng)頁添加至CrawledPages隊列,以提高下載網(wǎng)頁與主題的相關(guān)性,提高下載效率。第五步多線程分類獲取信息
采用多線程同步技術(shù),首先啟動主線程,用于獲取URL信息,對分析獲取到的URL信息加入數(shù)據(jù)庫中,30秒后添加副線程從數(shù)據(jù)庫中取出所需的URL,針對文字信息、圖片信息的不同數(shù)據(jù)格式,將需要下載的URL進(jìn)行分類,對于文字信息的URL,直接用于后期下載,轉(zhuǎn)至第六步。第六步文字信息URL解析獲取
將一定時間段內(nèi)需要解析的數(shù)據(jù)URL存于緩沖區(qū)Buffer中,以便提高存取速度。針對包含文字信息的URL,通過文字信息解析類TextCrawl進(jìn)行解析,存儲正在解析的URL,防止中途出現(xiàn)斷點,以便及時恢復(fù)。解析信息獲取后,將文字信息存儲為對應(yīng)的XML文件,并在數(shù)據(jù)庫表wordlndex中記錄信息。第七步一次循環(huán)下載已完畢。圖3示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制系統(tǒng)的結(jié)構(gòu)示意圖。具體地,本領(lǐng)域技術(shù)人員理解,在本實施例中,通過本發(fā)明提供的基于 RSS的多線程圖文信息同步爬取控制系統(tǒng)來對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,該同步爬取控制系統(tǒng)4包括爬取子系統(tǒng)41以及本地數(shù)據(jù)庫42。具體地,所述爬取子系統(tǒng)41用于基于RSS、以多線程方式對網(wǎng)頁內(nèi)圖文信息進(jìn)行同步爬??;所述本地數(shù)據(jù)庫42用于存儲與爬取過程以及爬取結(jié)果有關(guān)的內(nèi)容。優(yōu)選地,本領(lǐng)域技術(shù)人員理解,所述爬取子系統(tǒng)41 包括第一分析裝置411、第一獲取裝置412、第二分析裝置413、第一存儲裝置414、下載裝置415以及第一控制裝置416。具體地,所述第一分析裝置411用于通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;所述第一獲取裝置412用于獲取所述目標(biāo)網(wǎng)頁的URL ;所述第二分析裝置413用于對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL ;所述第一存儲裝置414用于將所述有用信息的URL進(jìn)行存儲;所述下載裝置415用于下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;所述第一控制裝置416 用于控制所述第一分析裝置針對所述下載裝置所下載的每個網(wǎng)頁內(nèi)容進(jìn)行分析。具體地, 所述控制系統(tǒng)4可以通過互聯(lián)網(wǎng)來獲取存儲于各服務(wù)器(例如服務(wù)器61飛N)內(nèi)的目標(biāo)網(wǎng)頁,在此不予贅述。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,所述控制系統(tǒng)4至少可以根據(jù)上述圖I或圖2所示實施例以及變化例所述的控制方法執(zhí)行基于RSS的多線程的圖文信息的同步爬取過程, 在此不予贅述。進(jìn)一步地,結(jié)合上述實施例,圖Γ圖7示出了基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中,針對樣例、維基百科RSS中的“義勇軍進(jìn)行曲”進(jìn)行爬取的過程的各示意圖。其中,圖4示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中,作為樣例的“義勇軍進(jìn)行曲”在維基百科RSS中的表現(xiàn)形式的示意圖;圖5示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中解析網(wǎng)頁源代碼后所獲得的網(wǎng)頁正文的示意圖;圖6示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中XML文件的示意圖;圖7示出根據(jù)本發(fā)明的第一實施例的,基于RSS的多線程圖文信息同步爬取控制方法的實現(xiàn)過程中網(wǎng)頁源代碼中圖片信息的示意圖。具體地,針對維基百科中“義勇軍進(jìn)行曲” (http ://zh. wikipedia. org/zh-cn/%E4 %B9%89%E5%8B%87%E5%86%9B%E8%BF%9B%E8%A1%8C%E6%9B%B2)這個詞條,來說明如何獲得文字信息與圖片信息。具體步驟簡要闡述如下
第一步基于RSS特征對網(wǎng)頁數(shù)據(jù)分析過濾。在抓取信息之前,通過RSS文檔分析程序分析XML文件,通過分析<url>及</url>標(biāo)簽內(nèi)部信息,獲取下載網(wǎng)頁的URL,并把URL存儲于數(shù)據(jù)庫中。其中,“義勇軍進(jìn)行曲”在維基百科RSS中的表現(xiàn)具體如圖4所示,在此不予贅述。第二步文字信息URL解析獲取。獲取URL后,通過URL解析網(wǎng)頁源代碼,獲得網(wǎng)頁正文文本內(nèi)容。獲得的文本信息,即“義勇軍進(jìn)行曲”的內(nèi)容縮簡為圖5所示,在此不予贅述。第三步文字信息存儲。將文字信息存儲為對應(yīng)的XML文件。優(yōu)選地,XML格式具體如圖6所示,在此不予贅述。第四步圖片信息解析獲取。對于包含圖片信息的URL,分析網(wǎng)頁源代碼,抓取含有<class=〃image〃>、〈/class〉的標(biāo)簽信息,解析獲取圖片實際地址(根據(jù)src),索引至實際地址抓取圖片。具體地,網(wǎng)頁源代碼中圖片信息的示意圖如圖7所示,在此不予贅述。
進(jìn)一步地,抓取圖片后以圖片方式存儲在計算機中。第五步不規(guī)則命名SHAl處理。不符合建立文件規(guī)則的圖片名稱,將相應(yīng)的名稱經(jīng)過SHAl處理。例如,優(yōu)選地,如“Are_you_Alice · png”,其經(jīng)過SHAl處理后變化為
ee55a8c6d3dl33cf7c43b4a54575b239710e9eca. png。進(jìn)一步地,本領(lǐng)域技術(shù)人員理解,還可以通過其他處理方式處理不符合建立文件規(guī)則的圖片名稱,在此不予贅述。以上對本發(fā)明的具體實施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。
權(quán)利要求
1.一種基于RSS的多線程圖文信息同步爬取控制方法,其用于對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,其特征在于,包括如下步驟a.通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;b.獲取所述目標(biāo)網(wǎng)頁的URL;c.對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL;d.將所述有用信息的URL進(jìn)行存儲;e.下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;f.針對所述步驟e中的每個網(wǎng)頁內(nèi)容執(zhí)行所述步驟a。
2.根據(jù)權(quán)利要求I所述的控制方法,其特征在于,所述步驟e包括如下步驟el.從未下載集合中選擇下載優(yōu)先級最高的網(wǎng)頁作為待下載網(wǎng)頁,其中,所述未下載集合包括所述所有未下載的有用信息的URL對應(yīng)的網(wǎng)頁;e2.下載所述待下載網(wǎng)頁;e3.將所述待下載網(wǎng)頁排除于所述未下載集合之外,并針對所述未下載集合再次執(zhí)行所述步驟el,直至所述未下載集合為空集。
3.根據(jù)權(quán)利要求2所述的控制方法,其特征在于,所述步驟el包括如下步驟中的任一個-比較所述未下載集合中所有網(wǎng)頁的超鏈接指數(shù),并將所述超鏈接指數(shù)最高的一個網(wǎng)頁作為所述下載優(yōu)先級最高的網(wǎng)頁,其中,一個網(wǎng)頁的所述超鏈接指數(shù)為已下載集合中的所有網(wǎng)頁指向該網(wǎng)頁的超鏈接數(shù),其中,所述已下載集合包括所述有用信息的URL對應(yīng)的網(wǎng)頁中所有已下載的部分;或者-比較所述未下載集合中所有網(wǎng)頁的超鏈接數(shù)量,并將所述超鏈接數(shù)量最大的一個網(wǎng)頁作為所述下載優(yōu)先級最高的網(wǎng)頁,其中,所述超鏈接數(shù)量為一個網(wǎng)頁中所包含的所有超鏈接的數(shù)量。
4.根據(jù)權(quán)利要求I至3中任一項所述的控制方法,其特征在于,所述步驟e中下載網(wǎng)頁內(nèi)容的步驟包括如下步驟i.確定所述待下載網(wǎng)頁的內(nèi)容分類; .若所述內(nèi)容分類指示所述待下載網(wǎng)頁為文字內(nèi)容的網(wǎng)頁,則直接下載所述待下載網(wǎng)頁;若所述內(nèi)容分類指示所述待下載網(wǎng)頁為圖片內(nèi)容的網(wǎng)頁,則有針對性地獲取包含圖片信息的內(nèi)容,并將此內(nèi)容抽取簡化,將數(shù)據(jù)量控制在有效獲取圖片信息的最小范圍。
5.根據(jù)權(quán)利要求4所述的控制方法,其特征在于,所述步驟i、步驟ii通過一個副線程完成,所述步驟d通過一個主線程完成。
6.根據(jù)權(quán)利要求I至5中任一項所述的控制方法,其特征在于,還包括如下步驟g.解析所述被下載的網(wǎng)頁內(nèi)容,將解析結(jié)果相適應(yīng)地存儲,其中,所述解析結(jié)果將作為搜索引擎的搜索依據(jù)。
7.根據(jù)權(quán)利要求6所述的控制方法,其特征在于,所述步驟g包括如下步驟gl.確定所述網(wǎng)頁內(nèi)容的內(nèi)容分類;g2.若所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為文字內(nèi)容的網(wǎng)頁,則通過文字信息解析類 TextCrawl進(jìn)行解析,并將解析結(jié)果相適應(yīng)地存儲;若所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為圖片內(nèi)容的網(wǎng)頁,則通過PicCrawl解析類進(jìn)行解析,解析獲取所述圖片的實際地址,索引至所述實際地址抓取所述圖片,并獲取相應(yīng)圖片信息。
8.根據(jù)權(quán)利要求7所述的控制方法,其特征在于,所述步驟g2中針對所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為文字內(nèi)容的網(wǎng)頁的情況下還包括如下步驟-將所述網(wǎng)頁內(nèi)容中對應(yīng)的文字信息存儲為對應(yīng)的XML文件。
9.根據(jù)權(quán)利要求7所述的控制方法,其中,所述步驟g2中針對所述內(nèi)容分類指示所述網(wǎng)頁內(nèi)容為圖片內(nèi)容的網(wǎng)頁的情況下還包括如下步驟-判斷所述圖片是否被成功抓取;-若所述圖片被成功抓取,則在本地建立文件夾,并相應(yīng)地將所述圖片存儲于對應(yīng)的文件夾內(nèi)。
10.根據(jù)權(quán)利要求7至9中任一項所述的控制方法,其特征在于,所述抓取所述圖片的步驟包括如下步驟g21.判斷所述圖片的名稱中是否不規(guī)則;g22.若所述圖片的名稱中不規(guī)則,則將所述圖片的名稱更改為可以被所述操作系統(tǒng)所認(rèn)可的字符。
11.根據(jù)權(quán)利要求10所述的控制方法,其特征在于,所述步驟g22中的將所述圖片的名稱更改為可以被所述操作系統(tǒng)所認(rèn)可的字符的步驟包括如下步驟-將所述圖片的名稱以SHAl算法進(jìn)行運算,并將運算后結(jié)果作為所述更改后的圖片名稱。
12.根據(jù)權(quán)利要求10或11所述的控制方法,其特征在于,所述抓取所述圖片的步驟中, 在所述步驟g22之前或所述步驟g22之后還包括如下步驟g23.將所述圖片的原始圖片名稱與經(jīng)SHAl運算之后的圖片名稱相適應(yīng)地存儲,以便可以獲得兩者唯一的對應(yīng)關(guān)系。
13.根據(jù)權(quán)利要求7至12中任一項所述的控制方法,其特征在于,所述步驟g還包括如下步驟g3.若所述網(wǎng)頁內(nèi)容既包括文字內(nèi)容也包括圖片內(nèi)容,則依據(jù)所述步驟g2分別爬取相應(yīng)的文字、圖片信息后,將所述文字、圖片信息實時地進(jìn)行合并存儲。
14.根據(jù)權(quán)利要求13所述的控制方法,其特征在于,所述將所述文字、圖片信息實時地進(jìn)行合并存儲的步驟包括如下步驟-判斷所述圖片的名稱是否被更改過;-若所述圖片的名稱被更改過,則解析所述網(wǎng)頁對應(yīng)的源代碼,修改所述源代碼中與所述圖片的原始圖片名稱為所述經(jīng)修改后的圖片名稱。
15.根據(jù)權(quán)利要求7至14中任一項所述的控制方法,其特征在于,所述圖片信息包括如下信息中的任一種或任多種-圖片名;-圖片對象;-圖片格式;以及-圖片大小。
16.根據(jù)權(quán)利要求7至15中任一項所述的控制方法,其特征在于,所述文字信息包括如下信息中的任一種或任多種-文字內(nèi)容;以及 -文字格式。
17.根據(jù)權(quán)利要求I至16中任一項所述的控制方法,其特征在于,在所述步驟d中所述有用信息的URL被存儲至一本地數(shù)據(jù)庫中,其特征還在于,所述本地數(shù)據(jù)庫包括至少如下數(shù)據(jù)表中的任一個-下載URL表;-文字息索引表;-圖片信息表;-圖片名稱修改存儲表。
18.一種基于RSS的多線程圖文信息同步爬取控制系統(tǒng),其用于對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,其特征在于,包括爬取子系統(tǒng),其用于基于RSS、以多線程方式對網(wǎng)頁內(nèi)圖文信息進(jìn)行同步爬?。槐镜財?shù)據(jù)庫,用于存儲與爬取過程以及爬取結(jié)果有關(guān)的內(nèi)容;其特征還在于,所述爬取子系統(tǒng)包括如下裝置第一分析裝置,其用于通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;第一獲取裝置,其用于獲取所述目標(biāo)網(wǎng)頁的URL ;第二分析裝置,其用于對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL ;第一存儲裝置,其用于將所述有用信息的URL進(jìn)行存儲;下載裝置,其用于下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;以及第一控制裝置,其用于控制所述第一分析裝置針對所述下載裝置所下載的每個網(wǎng)頁內(nèi)容進(jìn)行分析。
19.根據(jù)權(quán)利要求18所述的控制系統(tǒng),其特征在于,所述控制系統(tǒng)根據(jù)權(quán)利要求I至 17中任一項所述的控制方法執(zhí)行基于RSS的多線程的圖文信息的同步爬取過程。
全文摘要
本發(fā)明提供一種基于RSS的多線程圖文信息同步爬取控制方法,用于對網(wǎng)頁中的圖片、文字信息進(jìn)行分類獲取,其包括如下步驟a.通過RSS文檔分析程序分析待爬取的目標(biāo)網(wǎng)頁文件;b.獲取所述目標(biāo)網(wǎng)頁的URL;c.對所述目標(biāo)網(wǎng)頁數(shù)據(jù)進(jìn)行過濾分析,采用廣度優(yōu)先策略獲取有用信息的URL;d.將所述有用信息的URL進(jìn)行存儲;e.下載所述步驟d中的每個所述有用信息的URL對應(yīng)的網(wǎng)頁內(nèi)容;f.針對所述步驟e中的每個網(wǎng)頁內(nèi)容執(zhí)行所述步驟a。本發(fā)明還提供一種基于RSS的多線程圖文信息同步爬取控制系統(tǒng)。本發(fā)明具有以下優(yōu)點(1)適宜的查全率,較高的查準(zhǔn)率;(2)功能模塊化,可移植性能高;(3)具有針對性;(4)具有實時性;(5)具有可維護(hù)性。
文檔編號G06F17/30GK102609412SQ20111000299
公開日2012年7月25日 申請日期2011年1月7日 優(yōu)先權(quán)日2011年1月7日
發(fā)明者俞云飛, 呂釗, 李琴, 梁璐, 蔡頌梅, 陳鵬, 黃小霞 申請人:華東師范大學(xué)