專利名稱:網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息分析抓取技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法。
背景技術(shù):
目前,隨著網(wǎng)絡(luò)信息的迅速膨脹,互聯(lián)網(wǎng)的信息量越來越大,現(xiàn)在有的搜索引擎如Google、百度等,搜狗等都是面向所有的用戶免費開放的,都力爭在搜索返回結(jié)果上做到全面,但是上述搜索引擎并不是專門為搜索特定領(lǐng)域資料而設(shè)計的,然而人們往往需要借助搜索引擎來幫助他們在大量信息中尋找指定領(lǐng)域的資料,比如求職者在百度中搜索“蘇州旅游”,會有部分的旅游信息,但是結(jié)果中很多旅游信息都已經(jīng)過期,有的甚至是一年前甚至更久的職位信息,對于旅游信息這樣的時效性非常高的信息,百度這樣的搜索引擎明顯不能滿足用戶需求。還有開發(fā)網(wǎng)頁搜索的產(chǎn)生背景是因為互聯(lián)網(wǎng)上的網(wǎng)頁太多,用戶無法找到自己想要的網(wǎng)頁,存在兩個問題,第一用戶從開放式的網(wǎng)頁搜索中想要找到自己想要的某一個特定領(lǐng)域的信息時,需要花費大量的時間,例如,對于求職而言,如果用戶在google中輸入"Java開發(fā)”,得到的結(jié)果都是講java開發(fā)技巧的,要想看到關(guān)于“java開發(fā)”的職位,需要用不斷的翻頁;垂直搜索產(chǎn)生的第二個原因是,領(lǐng)域性網(wǎng)站數(shù)量的日益增多,拿招聘來說,現(xiàn)在國內(nèi)的招聘網(wǎng)站可以說是幾百家,除了 51job、chinahr、zhaopin這樣的門戶之外,各地還有自己的招聘門戶,因此,用戶想要得到全面的招聘信息,就需要一個網(wǎng)站一個網(wǎng)站打開去看,耗時耗力。
發(fā)明內(nèi)容
本發(fā)明的目的克服現(xiàn)有技術(shù)中的不足,提供的一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,能夠為用戶提供更加準確的信息,更好的滿足用戶的檢索要求,且算法準確、穩(wěn)定、不會引起本地資源耗盡,具有良好的應(yīng)用前景。為了達到上述技術(shù)目的,本發(fā)明所采用的技術(shù)方案是
一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于包括以下步驟,
步驟(I)在客戶端上建立URL類庫和Page類庫
URL類庫用于組成消息體,并將消息體發(fā)送給Web服務(wù)器,Page類庫用于解析網(wǎng)頁頭信息、提取鏈接信息的Page類;
步驟(2)將客戶端進程與服務(wù)端進程建立連接采用非阻塞方式建立客戶端進程與服務(wù)端進程的連接;
步驟(3)客戶端上構(gòu)造請求消息體并發(fā)送給服務(wù)端步驟(4)客戶端獲取網(wǎng)頁頭信息和網(wǎng)頁體信息
服務(wù)端接受客戶端上構(gòu)造請求消息體后,返回網(wǎng)頁頭信息和網(wǎng)頁體信息;
步驟(5)客戶端解析網(wǎng)頁頭信息,保存符合要求的網(wǎng)頁體信息,完成網(wǎng)頁數(shù)據(jù)收集。前述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(4)所述網(wǎng)頁頭信息包括文件類型、大小、最后修改時間內(nèi)容,所述網(wǎng)頁體信息包括網(wǎng)頁全文內(nèi)容。前述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(5)所述客戶端解析網(wǎng)頁頭信息的方法為,
(1)解析網(wǎng)頁頭信息的返回碼,判斷服務(wù)器是否對步驟(3)的構(gòu)造請求消息體轉(zhuǎn)向,若轉(zhuǎn)向,則重新構(gòu)造消息體,并通過客戶端發(fā)送請求;
(2)解析網(wǎng)頁頭信息的傳輸類型及網(wǎng)頁體信息的大小,客戶端申請預(yù)定接收的內(nèi)存空間準備接收,若超出預(yù)定接收的內(nèi)存空間的大小,則放棄網(wǎng)頁體信息;
(3)解析網(wǎng)頁頭信息的網(wǎng)頁類型,進行網(wǎng)頁體信息的獲取。前述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(5)所述保存符合要求的網(wǎng)頁體信息采用天網(wǎng)格式進行存儲。前述的一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于所述保存符合要求的網(wǎng)頁體信息還設(shè)有用于破壞后網(wǎng)頁體信息的數(shù)據(jù)可恢復(fù)性分析,包括以下步驟,
(1)選取破壞后網(wǎng)頁體信息的任一個殘存片段;
(2)記錄該殘存片段中一字符串的位置POS;
(3)找到該字符串后,判斷其后的數(shù)據(jù)是否滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則從(2)記錄的位置POS開始繼續(xù)查找下一個字符串,重復(fù)(3);
(4)若存儲條件滿足,則假定為正確記錄,則下一個記錄為正確記錄,檢查該記錄滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則假定錯誤,從(2)記錄的位置POS開始,繼續(xù)查找下一個特定字符串,若條件都滿足,則繼續(xù)檢查下一個記錄是否正確;
(5)若連續(xù)三個記錄都是正確的,則(2)所找到字符串是正確的記錄的開始,然后通過服務(wù)器依此提取出全部正確的網(wǎng)頁。本發(fā)明的有益效果是本發(fā)明提供的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,通過分析搜索引擎的工作原理及其各部分主要功能,抓住如何評價頁面的主題相關(guān)性和設(shè)計高效的爬行策略這兩個關(guān)鍵問題,提出基于人的信息專業(yè)的定題搜索器,以垂直搜索引擎的核心,采用深度優(yōu)先的搜索策略設(shè)計適合中小型網(wǎng)站專業(yè)網(wǎng)頁信息獲取的網(wǎng)絡(luò)蜘蛛,并給出此網(wǎng)絡(luò)蜘蛛的爬行算法使用c++ Builder工具實現(xiàn)程序,另外,為了保證數(shù)據(jù)庫中的信息不重復(fù),還設(shè)計了專門用于數(shù)據(jù)查重的程序以保證資源準確,能夠為用戶提供更加準確的信息,更好的滿足用戶的檢索要求,且算法準確、穩(wěn)定、不會引起本地資源耗盡,具有良好的應(yīng)用前景。
圖I是本發(fā)明的網(wǎng)絡(luò)垂直抓取系統(tǒng)的系統(tǒng)框圖。圖2是本發(fā)明的基于Socket的客戶端與服務(wù)端連接示意圖。
具體實施例方式下面將結(jié)合說明書附圖,對本發(fā)明作進一步的說明。如圖I所示的網(wǎng)絡(luò)垂直抓取系統(tǒng)的系統(tǒng)框圖,網(wǎng)絡(luò)垂直抓取系統(tǒng)過程是INTERNET(初始時包含用戶指定的起始種子URL類庫集合,可以是I個或多個)獲得輸入,解析URL類庫中標明的服務(wù)器地址、建立連接、發(fā)送請求和接收數(shù)據(jù),將獲得的網(wǎng)頁數(shù)據(jù)存儲在原始網(wǎng)頁庫,并從其中提取出鏈接信息放入網(wǎng)頁結(jié)構(gòu)庫,同時將待抓取的URL放入URL類庫,保證
4整個過程的遞歸進行,直到URL庫為空,網(wǎng)絡(luò)蜘蛛垂直搜索系統(tǒng)提供檢索服務(wù),需要保存網(wǎng)頁原文,搜集的網(wǎng)頁要按照一定的格式存儲,便于后續(xù)組織和提供服務(wù),本發(fā)明基于網(wǎng)絡(luò)垂直抓取系統(tǒng)的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于包括以下步驟,
第一步,在客戶端上建立URL類庫和Page類庫
URL類庫用于組成消息體,并將消息體發(fā)送給Web服務(wù)器,Page類庫用于解析網(wǎng)頁頭信息、提取鏈接信息的Page類;
URL類庫為是HTTP,F(xiàn)TP等協(xié)議開始的字符串,有了 URL類庫后,按照URL類庫中標識抓取其所對應(yīng)的網(wǎng)頁,網(wǎng)頁信息保存在Page類庫中;
第二步,將客戶端進程與服務(wù)端進程建立連接
將已經(jīng)從URL類庫中獲得了服務(wù)器的主機名,要能夠從服務(wù)器上獲取網(wǎng)頁內(nèi)容,UDP和TCP的通信采用Socket方法實現(xiàn),Socket為進程間通信提供了端點,通信由消息組成,消息是在一個進程的Socket與另一個進程Socket之間傳送的,如圖2所示,一個進程要能夠接收消息,它的Socket必須綁定到一個本地端口和本地地址上。發(fā)送到指定Internet地址和端口上的消息,只能被綁定到該地址和端口的Socket所屬進程接收,連接的建立過程是異步的,一方在監(jiān)聽建立連接的請求,一方將發(fā)起建立連接的請求,連接一旦被接受,操作系統(tǒng)(例如UNIX)自動創(chuàng)建新的socket使之與客戶端連接成通信的通道,這樣服務(wù)端就可以在原來的Socket上繼續(xù)監(jiān)聽其他客戶的請求了,連接建立后,雙方進程可以通過建立好的連接進行讀寫操作,這里采用非阻塞方式建立客戶端進程與服務(wù)端進程的連接;
第三步,客戶端上構(gòu)造請求消息體并發(fā)送給服務(wù)端;
第四步,客戶端獲取網(wǎng)頁頭信息和網(wǎng)頁體信息
服務(wù)端接受客戶端上構(gòu)造請求消息體后,返回網(wǎng)頁頭信息和網(wǎng)頁體信息,所述網(wǎng)頁頭信息包括文件類型、大小、最后修改時間內(nèi)容,所述網(wǎng)頁體信息包括網(wǎng)頁全文內(nèi)容。第五步,客戶端解析網(wǎng)頁頭信息,保存符合要求的網(wǎng)頁體信息,完成網(wǎng)頁數(shù)據(jù)收集,所述客戶端解析網(wǎng)頁頭信息的方法為,
(1)解析網(wǎng)頁頭信息的返回碼,判斷服務(wù)器是否對步驟(3)的構(gòu)造請求消息體轉(zhuǎn)向,若轉(zhuǎn)向,則重新構(gòu)造消息體,并通過客戶端發(fā)送請求;
(2)解析網(wǎng)頁頭信息的傳輸類型及網(wǎng)頁體信息的大小,客戶端申請預(yù)定接收的內(nèi)存空間準備接收,若超出預(yù)定接收的內(nèi)存空間的大小,則放棄網(wǎng)頁體信息;
(3)解析網(wǎng)頁頭信息的網(wǎng)頁類型,進行網(wǎng)頁體信息的獲??;
所述保存符合要求的網(wǎng)頁體信息采用天網(wǎng)格式進行存儲,所述保存符合要求的網(wǎng)頁體信息還設(shè)有用于破壞后網(wǎng)頁體信息的數(shù)據(jù)可恢復(fù)性分析,包括以下步驟,
(1)選取破壞后網(wǎng)頁體信息的任一個殘存片段;
(2)記錄該殘存片段中一字符串的位置POS;
(3)找到該字符串后,判斷其后的數(shù)據(jù)是否滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則從(2)記錄的位置POS開始繼續(xù)查找下一個字符串,重復(fù)(3);
(4)若存儲條件滿足,則假定為正確記錄,則下一個記錄為正確記錄,檢查該記錄滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則假定錯誤,從(2)記錄的位置POS開始,繼續(xù)查找下一個特定字符串“version”,如果條件都滿足,則繼續(xù)檢查下一個記錄是否正確;
(5)若連續(xù)三個記錄都是正確的,則(2)所找到字符串是正確的記錄的開始,然后通過服務(wù)器依此提取出全部正確的網(wǎng)頁。綜上所述,本發(fā)明的通過分析搜索引擎的工作原理及其各部分主要功能,抓住如何評價頁面的主題相關(guān)性和設(shè)計高效的爬行策略這兩個關(guān)鍵問題,提出基于人的信息專業(yè)的定題搜索器,以垂直搜索引擎的核心,采用深度優(yōu)先的搜索策略設(shè)計適合中小型網(wǎng)站專業(yè)網(wǎng)頁信息獲取的網(wǎng)絡(luò)蜘蛛,并給出此網(wǎng)絡(luò)蜘蛛的爬行算法使用c++ Builder工具實現(xiàn)程序,另外,為了保證數(shù)據(jù)庫中的信息不重復(fù),還設(shè)計了專門用于數(shù)據(jù)查重的程序以保證資源準確,能夠為用戶提供更加準確的信息,更好的滿足用戶的檢索要求,且算法準確、穩(wěn)定、不會引起本地資源耗盡,具有良好的應(yīng)用前景。以上顯示和描述了本發(fā)明的基本原理、主要特征及優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界。
權(quán)利要求
1.一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于包括以下步驟 步驟(I)在客戶端上建立URL類庫和Page類庫URL類庫用于組成消息體,并將消息體發(fā)送給Web服務(wù)器,Page類庫用于解析網(wǎng)頁頭信息、提取鏈接信息的Page類;步驟(2)將客戶端進程與服務(wù)端進程建立連接采用非阻塞方式建立客戶端進程與服務(wù)端進程的連接;步驟(3)客戶端上構(gòu)造請求消息體并發(fā)送給服務(wù)端;步驟(4)客戶端獲取網(wǎng)頁頭信息和網(wǎng)頁體信息服務(wù)端接受客戶端上構(gòu)造請求消息體后,返回網(wǎng)頁頭信息和網(wǎng)頁體信息;步驟(5)客戶端解析網(wǎng)頁頭信息,保存符合要求的網(wǎng)頁體信息,完成網(wǎng)頁數(shù)據(jù)收集。
2.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(4)所述網(wǎng)頁頭信息包括文件類型、大小、最后修改時間內(nèi)容,所述網(wǎng)頁體信息包括網(wǎng)頁全文內(nèi)容。
3.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(5)所述客戶端解析網(wǎng)頁頭信息的方法為,(1)解析網(wǎng)頁頭信息的返回碼,判斷服務(wù)器是否對步驟(3)的構(gòu)造請求消息體轉(zhuǎn)向,若轉(zhuǎn)向,則重新構(gòu)造消息體,并通過客戶端發(fā)送請求;(2)解析網(wǎng)頁頭信息的傳輸類型及網(wǎng)頁體信息的大小,客戶端申請預(yù)定接收的內(nèi)存空間準備接收,若超出預(yù)定接收的內(nèi)存空間的大小,則放棄網(wǎng)頁體信息;(3)解析網(wǎng)頁頭信息的網(wǎng)頁類型進行網(wǎng)頁體信息的獲取。
4.根據(jù)權(quán)利要求I所述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于步驟(5)所述保存符合要求的網(wǎng)頁體信息采用天網(wǎng)格式進行存儲。
5.根據(jù)權(quán)利要求I或4所述的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,其特征在在于所述保存符合要求的網(wǎng)頁體信息還設(shè)有用于破壞后網(wǎng)頁體信息的數(shù)據(jù)可恢復(fù)性分析,包括以下步驟,(1)選取破壞后網(wǎng)頁體信息的任一個殘存片段;(2)記錄該殘存片段中一字符串的位置POS;(3)找到該字符串后,判斷其后的數(shù)據(jù)是否滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則從(2)記錄的位置POS開始繼續(xù)查找下一個字符串,重復(fù)(3);(4)若存儲條件滿足,則假定為正確記錄,則下一個記錄為正確記錄,檢查該記錄滿足天網(wǎng)格式的存儲條件,若存儲條件不滿足,則假定錯誤,從(2)記錄的位置POS開始,繼續(xù)查找下一個特定字符串,若條件都滿足,則繼續(xù)檢查下一個記錄是否正確;(5)若連續(xù)三個記錄都是正確的,則(2)所找到字符串是正確的記錄的開始,然后通過服務(wù)器依此提取出全部正確的網(wǎng)頁。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,包括以下步驟1)在客戶端上建立URL類庫和Page類庫;2)將客戶端進程與服務(wù)端進程建立連接;3)客戶端上構(gòu)造請求消息體并發(fā)送給服務(wù)端;4)客戶端獲取網(wǎng)頁頭信息和網(wǎng)頁體信息;5)客戶端解析網(wǎng)頁頭信息,保存符合要求的網(wǎng)頁體信息,完成網(wǎng)頁數(shù)據(jù)收集。本發(fā)明的網(wǎng)絡(luò)蜘蛛垂直數(shù)據(jù)收集方法,能夠為用戶提供更加準確的信息,更好的滿足用戶的檢索要求,且算法準確、穩(wěn)定、不會引起本地資源耗盡,具有良好的應(yīng)用前景。
文檔編號H04L29/08GK102932482SQ201210464709
公開日2013年2月13日 申請日期2012年11月19日 優(yōu)先權(quán)日2012年11月19日
發(fā)明者丁國平 申請人:昆山鼎勝數(shù)據(jù)服務(wù)有限公司