基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法
【專利摘要】本發(fā)明涉及一種基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特點(diǎn)是:首先,通過啟停入口配置模塊,將爬蟲初始入口地址配置到啟動(dòng)模塊中。之后,爬蟲控制系統(tǒng)按照設(shè)定的抓取規(guī)則和抓取流程,進(jìn)行深度優(yōu)先算法開始遍歷抓取網(wǎng)頁。最終,爬蟲通過規(guī)則配置系統(tǒng)的規(guī)則序列對,對頁面數(shù)據(jù)進(jìn)行解析提取,對提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。由此,能夠滿足爬蟲通用性要求,在具體業(yè)務(wù)邏輯上增加解析規(guī)則配置,抓取網(wǎng)頁深度,抓取線程,數(shù)據(jù)庫配置或索引配置,就可以開啟智能化抓取采集信息。能夠有效構(gòu)成智能垂直爬蟲框架,同時(shí),能夠?qū)崿F(xiàn)數(shù)據(jù)自動(dòng)歸檔,分類入庫,可采用分布式鍵值對數(shù)據(jù)庫存儲(chǔ)的方式。
【專利說明】基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)收集方法,尤其涉及一種基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法。
【背景技術(shù)】
[0002]爬蟲,又稱為蜘蛛,它不是昆蟲的名稱,而是人們?yōu)榱诵蜗竺枋鲇?jì)算機(jī)程序在網(wǎng)絡(luò)不斷通過定制的入口網(wǎng)址去提取網(wǎng)頁的鏈接,并根據(jù)這些鏈接再度抓取提取更深的其它未知的鏈接,以此下去,將這樣的程序抓取形為形容成類似爬蟲似的動(dòng)作,稱之為爬蟲,爬蟲是一種自動(dòng)獲取網(wǎng)頁內(nèi)容的程序,是搜索引擎的重要組成部分。
[0003]關(guān)于垂直爬蟲,垂直搜索的核心技術(shù)實(shí)際上就是智能爬蟲的技術(shù),是如何將定向或者非定向的網(wǎng)頁抓取下來并進(jìn)行分析后得到格式化數(shù)據(jù)的技術(shù)。主要用來精確的提取規(guī)則的二維表數(shù)據(jù),可以方便建立索引查詢,數(shù)據(jù)分類,后期數(shù)據(jù)處理。
[0004]但是,以往傳統(tǒng)垂直抓取程序,需要將解析,以及抓取邏輯強(qiáng)耦合到整個(gè)模塊中,不便于后期的維護(hù)和功能擴(kuò)展,維護(hù)成本高,且效率較氏,無框架伸縮性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問題,提供一種基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法。
[0006]本發(fā)明的目的通過以下技術(shù)方案來實(shí)現(xiàn):
基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其包括以下步驟:步驟①,通過啟停入口配置模塊,將爬蟲初始入口地址配置到啟動(dòng)模塊中;步驟②,爬蟲控制系統(tǒng)按照設(shè)定的抓取規(guī)則和抓取流程,進(jìn)行深度優(yōu)先算法開始遍歷抓取網(wǎng)頁;步驟③,爬蟲通過規(guī)則配置系統(tǒng)的規(guī)則序列對,對頁面數(shù)據(jù)進(jìn)行解析提取,對提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。
[0007]上述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其中:步驟①所述的配置模塊、啟動(dòng)模塊位于服務(wù)器中,爬蟲初始入口地址通過指定的爬蟲網(wǎng)址列表文件進(jìn)行靜態(tài)導(dǎo)入,或是,通過將爬蟲入口網(wǎng)址放到數(shù)據(jù)庫中進(jìn)行指定。
[0008]進(jìn)一步地,上述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其中:步驟②所述的抓取規(guī)則是對爬蟲入口地址是將每一條合法的http網(wǎng)址一行一條的放入到入口列表文件中,或是一條網(wǎng)址在數(shù)據(jù)庫中存放一行,抓取流程如下,根據(jù)配置文件中的提供爬蟲入口網(wǎng)址列表進(jìn)行抓取,按照配置的抓取深度進(jìn)行遍歷,首先取一條網(wǎng)址進(jìn)行抓取,然后讀取第一層解析規(guī)則,將第一層的解析規(guī)劃解析后得到的數(shù)據(jù)傳遞到第二層,第二層進(jìn)行深度抓取的時(shí)候,采用第一層解析提取到的網(wǎng)址進(jìn)行再次抓取,并根據(jù)解析規(guī)則列表中的規(guī)則進(jìn)行解析,并將解析得到的數(shù)據(jù)同第一層進(jìn)行合并,傳遞到第三層,以此類推,直到配置的最大層數(shù),一條深度抓取結(jié)束后,會(huì)依次向上返回獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)配置將抓取提取到的數(shù)據(jù)保存到指定的存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)是磁盤空間上的自定義的數(shù)據(jù)結(jié)構(gòu)文件,或是,分布式鍵值對形式的數(shù)據(jù)庫,或是,用Iucene索引分詞后進(jìn)行索引文件存儲(chǔ),所述的爬蟲初始入口地址至少配置一個(gè)。
[0009]更進(jìn)一步地,上述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其中:步驟③所述的規(guī)則序列對是將解析頁面提取有用數(shù)據(jù)的正則表達(dá)式按照層次,保存節(jié)點(diǎn)名,按照列表的形式通過配置系統(tǒng)手工配置到系統(tǒng)中,抓取程序按層依次調(diào)用每層中的抓取規(guī)則進(jìn)行提取使用,當(dāng)某一層的正則不適合其指定的層時(shí),會(huì)發(fā)生解析錯(cuò)誤并返回空數(shù)據(jù),直到抓取完成設(shè)定的層次抓取,每一個(gè)抓取線程中的解析規(guī)則是依次解析提取,解析提取到的數(shù)據(jù)存放在服務(wù)器內(nèi)存中,當(dāng)完成一條完整的抓取層次后,再將數(shù)據(jù)存入到存儲(chǔ)媒介中。
[0010]更進(jìn)一步地,上述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其中:步驟③所述的儲(chǔ)存方式為健值對存儲(chǔ)方式,或是為分布式數(shù)據(jù)庫存儲(chǔ)方式,或是為文件索引式數(shù)據(jù)庫存儲(chǔ)方式。
[0011]再進(jìn)一步地,上述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其中:所述分布式數(shù)據(jù)庫存儲(chǔ)方式,將抓取的數(shù)據(jù)進(jìn)行編號,通過機(jī)器選擇后,將數(shù)據(jù)推送到指定的存儲(chǔ)器中,并將數(shù)據(jù)存放位置存放到爬蟲節(jié)點(diǎn)服務(wù)器上。
[0012]本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在:能夠滿足爬蟲通用性要求,適合各類垂直抓取需求,擴(kuò)展方便,插件式開發(fā)。在具體業(yè)務(wù)邏輯上增加解析規(guī)則配置,抓取網(wǎng)頁深度,抓取線程,數(shù)據(jù)庫配置或索引配置,就可以開啟智能化抓取采集信息。能夠有效構(gòu)成智能垂直爬蟲框架,可以基于強(qiáng)大的前臺(tái)WEB監(jiān)控程序,控制抓取過程中的各種操作,以及實(shí)時(shí)顯示抓取的進(jìn)程,數(shù)據(jù)的完整情況,自動(dòng)驗(yàn)證抓取過種中數(shù)據(jù)的準(zhǔn)確性。同時(shí),能夠?qū)崿F(xiàn)數(shù)據(jù)自動(dòng)歸檔,分類入庫,可采用分布式鍵值對數(shù)據(jù)庫存儲(chǔ)的方式。由此,可以很方便從存儲(chǔ)容量水平方向上伸縮數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)庫擴(kuò)容。抓取處理的數(shù)據(jù)不受抓取機(jī)器的存儲(chǔ)空間限制,可以通過配置將數(shù)據(jù)自動(dòng)通過內(nèi)部快速交換網(wǎng)絡(luò)迅速存儲(chǔ)到存儲(chǔ)服務(wù)器中。
【專利附圖】
【附圖說明】
[0013]圖1是基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法的實(shí)際實(shí)施示意圖。
【具體實(shí)施方式】
[0014]如圖1所示的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于包括以下步驟:步驟①,通過啟停入口配置模塊,將爬蟲初始入口地址配置到啟動(dòng)模塊中。步驟②,爬蟲控制系統(tǒng)按照設(shè)定的抓取規(guī)則和抓取流程,進(jìn)行深度優(yōu)先算法開始遍歷抓取網(wǎng)頁。步驟③,爬蟲通過規(guī)則配置系統(tǒng)的規(guī)則序列對,對頁面數(shù)據(jù)進(jìn)行解析提取,對提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。
[0015]就本發(fā)明一較佳的實(shí)施方式來看,為了便于后續(xù)的配置使用,配置模塊、啟動(dòng)模塊位于服務(wù)器中,爬蟲初始入口地址通過指定的爬蟲網(wǎng)址列表文件進(jìn)行靜態(tài)導(dǎo)入,或是,通過將爬蟲入口網(wǎng)址放到數(shù)據(jù)庫中進(jìn)行指定。
[0016]進(jìn)一步來看,考慮到規(guī)則滿足日后的應(yīng)用需要,有利于爬蟲的工作,抓取規(guī)則是對爬蟲入口地址是將每一條合法的http網(wǎng)址一行一條的放入到入口列表文件中,或是一條網(wǎng)址在數(shù)據(jù)庫中存放一行。抓取流程如下,根據(jù)配置文件中的提供爬蟲入口網(wǎng)址列表進(jìn)行抓取,按照配置的抓取深度進(jìn)行遍歷,首先取一條網(wǎng)址進(jìn)行抓取,然后讀取第一層解析規(guī)貝U。之后,將第一層的解析規(guī)劃解析后得到的數(shù)據(jù)傳遞到第二層,第二層進(jìn)行深度抓取的時(shí)候。在此期間,采用第一層解析提取到的網(wǎng)址進(jìn)行再次抓取,并根據(jù)解析規(guī)則列表中的規(guī)則進(jìn)行解析,并將解析得到的數(shù)據(jù)同第一層進(jìn)行合并,傳遞到第三層。這樣,以此類推,直到配置的最大層數(shù),一條深度抓取結(jié)束后,會(huì)依次向上返回獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)配置將抓取提取到的數(shù)據(jù)保存到指定的存儲(chǔ)介質(zhì)中。
[0017]考慮到數(shù)據(jù)儲(chǔ)存的便利,存儲(chǔ)介質(zhì)是磁盤空間上的自定義的數(shù)據(jù)結(jié)構(gòu)文件,或是,分布式鍵值對形式的數(shù)據(jù)庫?;蚴?,用Iucene索引分詞后進(jìn)行索引文件存儲(chǔ)。為了便數(shù)據(jù)抓取,爬蟲初始入口地址至少配置一個(gè)。換句話說,最大個(gè)數(shù)據(jù)沒有特別限制,可以根據(jù)機(jī)器性能和抓取深度,適當(dāng)調(diào)整入口地址數(shù)目。
[0018]再進(jìn)一步來看,規(guī)則序列對是將解析頁面提取有用數(shù)據(jù)的正則表達(dá)式按照層次,保存節(jié)點(diǎn)名,按照列表的形式通過配置系統(tǒng)手工配置到系統(tǒng)中,抓取程序按層依次調(diào)用每層中的抓取規(guī)則進(jìn)行提取使用。當(dāng)某一層的正則不適合其指定的層時(shí),會(huì)發(fā)生解析錯(cuò)誤并返回空數(shù)據(jù),直到抓取完成設(shè)定的層次抓取,每一個(gè)抓取線程中的解析規(guī)則是依次解析提取,解析提取到的數(shù)據(jù)存放在服務(wù)器內(nèi)存中,當(dāng)完成一條完整的抓取層次后,再將數(shù)據(jù)存入到存儲(chǔ)媒介中。
[0019]當(dāng)然,為了適應(yīng)不同應(yīng)用對儲(chǔ)存的需求,儲(chǔ)存方式為健值對存儲(chǔ)方式,或是為分布式數(shù)據(jù)庫存儲(chǔ)方式。當(dāng)然,亦可以為文件索引式數(shù)據(jù)庫存儲(chǔ)方式。具體來說,分布式數(shù)據(jù)庫存儲(chǔ)方式,將抓取的數(shù)據(jù)進(jìn)行編號,通過機(jī)器選擇后,將數(shù)據(jù)推送到指定的存儲(chǔ)器中,并將數(shù)據(jù)存放位置存放到爬蟲節(jié)點(diǎn)服務(wù)器上。
[0020]結(jié)合本發(fā)明的實(shí)際使用情況來看,可以實(shí)現(xiàn)對在線旅游產(chǎn)品的收集,產(chǎn)品分析,產(chǎn)品比價(jià),產(chǎn)品資源整理等,通過智能垂直爬蟲框架可以方便的實(shí)現(xiàn)各個(gè)旅游產(chǎn)品的數(shù)據(jù)分析。具體來說至少能夠?qū)崿F(xiàn)以下四種數(shù)據(jù)系統(tǒng):1、垂直智能爬蟲機(jī)票比價(jià)抓取調(diào)價(jià)系統(tǒng),抓取各OTA的機(jī)票產(chǎn)品,收集各個(gè)OTA的所有航線的機(jī)票資源,價(jià)格,分析價(jià)格變化,趨勢,結(jié)合自身的價(jià)格數(shù)據(jù),找出同航線同航班的價(jià)格的優(yōu)勢率,分析價(jià)格的變動(dòng),作出觸發(fā)調(diào)價(jià)的行為。2、酒店比價(jià)系統(tǒng),抓取在線酒店OTA的所有酒店房型的預(yù)訂價(jià)格,分析各個(gè)酒店的資源的房型總數(shù)對比,每個(gè)房型的所有房型政策,價(jià)格,進(jìn)行價(jià)格比價(jià),分析,并調(diào)價(jià)。3、新聞博客抓取系統(tǒng)。4、火車時(shí)刻表,航班時(shí)刻表數(shù)據(jù)抓取更新系統(tǒng)等。
[0021]通過上述的文字表述可以看出,采用本發(fā)明后,能夠滿足爬蟲通用性要求,適合各類垂直抓取需求,擴(kuò)展方便,插件式開發(fā)。在具體業(yè)務(wù)邏輯上增加解析規(guī)則配置,抓取網(wǎng)頁深度,抓取線程,數(shù)據(jù)庫配置或索引配置,就可以開啟智能化抓取采集信息。能夠有效構(gòu)成智能垂直爬蟲框架,可以基于強(qiáng)大的前臺(tái)WEB監(jiān)控程序,控制抓取過程中的各種操作,以及實(shí)時(shí)顯示抓取的進(jìn)程,數(shù)據(jù)的完整情況,自動(dòng)驗(yàn)證抓取過種中數(shù)據(jù)的準(zhǔn)確性。同時(shí),能夠?qū)崿F(xiàn)數(shù)據(jù)自動(dòng)歸檔,分類入庫,可采用分布式鍵值對數(shù)據(jù)庫存儲(chǔ)的方式。由此,可以很方便從存儲(chǔ)容量水平方向上伸縮數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)庫擴(kuò)容。抓取處理的數(shù)據(jù)不受抓取機(jī)器的存儲(chǔ)空間限制,可以通過配置將數(shù)據(jù)自動(dòng)通過內(nèi)部快速交換網(wǎng)絡(luò)迅速存儲(chǔ)到存儲(chǔ)服務(wù)器中。
【權(quán)利要求】
1.基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于包括以下步驟: 步驟①,通過啟停入口配置模塊,將爬蟲初始入口地址配置到啟動(dòng)模塊中; 步驟②,爬蟲控制系統(tǒng)按照設(shè)定的抓取規(guī)則和抓取流程,進(jìn)行深度優(yōu)先算法開始遍歷抓取網(wǎng)頁; 步驟③,爬蟲通過規(guī)則配置系統(tǒng)的規(guī)則序列對,對頁面數(shù)據(jù)進(jìn)行解析提取,對提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。
2.根據(jù)權(quán)利要求1所述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于:步驟①所述的配置模塊、啟動(dòng)模塊位于服務(wù)器中,爬蟲初始入口地址通過指定的爬蟲網(wǎng)址列表文件進(jìn)行靜態(tài)導(dǎo)入,或是,通過將爬蟲入口網(wǎng)址放到數(shù)據(jù)庫中進(jìn)行指定。
3.根據(jù)權(quán)利要求1所述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于:步驟②所述的抓取規(guī)則是對爬蟲入口地址是將每一條合法的http網(wǎng)址一行一條的放入到入口列表文件中,或是一條網(wǎng)址在數(shù)據(jù)庫中存放一行,抓取流程如下,根據(jù)配置文件中的提供爬蟲入口網(wǎng)址列表進(jìn)行抓取,按照配置的抓取深度進(jìn)行遍歷,首先取一條網(wǎng)址進(jìn)行抓取,然后讀取第一層解析規(guī)則,將第一層的解析規(guī)劃解析后得到的數(shù)據(jù)傳遞到第二層,第二層進(jìn)行深度抓取的時(shí)候,采用第一層解析提取到的網(wǎng)址進(jìn)行再次抓取,并根據(jù)解析規(guī)則列表中的規(guī)則進(jìn)行解析,并將解析得到的數(shù)據(jù)同第一層進(jìn)行合并,傳遞到第三層,以此類推,直到配置的最大層數(shù),一條深度抓取結(jié)束后,會(huì)依次向上返回獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)配置將抓取提取到的數(shù)據(jù)保存到指定的存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)是磁盤空間上的自定義的數(shù)據(jù)結(jié)構(gòu)文件,或是,分布式鍵值對形式的數(shù)據(jù)庫,或是,用Iucene索引分詞后進(jìn)行索引文件存儲(chǔ),所述的爬蟲初始入口地址至少配置一個(gè)。
4.根據(jù)權(quán)利要求1所述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于:步驟③所述的規(guī)則序列對是將解析頁面提取有用數(shù)據(jù)的正則表達(dá)式按照層次,保存節(jié)點(diǎn)名,按照列表的形式通過配置系統(tǒng)手工配置到系統(tǒng)中,抓取程序按層依次調(diào)用每層中的抓取規(guī)則進(jìn)行提取使用,當(dāng)某一層的正則不適合其指定的層時(shí),會(huì)發(fā)生解析錯(cuò)誤并返回空數(shù)據(jù),直到抓取完成設(shè)定的層次抓取,每一個(gè)抓取線程中的解析規(guī)則是依次解析提取,解析提取到的數(shù)據(jù)存放在服務(wù)器內(nèi)存中,當(dāng)完成一條完整的抓取層次后,再將數(shù)據(jù)存入到存儲(chǔ)媒介中。
5.根據(jù)權(quán)利要求1所述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于:步驟③所述的儲(chǔ)存方式為健值對存儲(chǔ)方式,或是為分布式數(shù)據(jù)庫存儲(chǔ)方式,或是為文件索引式數(shù)據(jù)庫存儲(chǔ)方式。
6.根據(jù)權(quán)利要求5所述的基于網(wǎng)頁數(shù)據(jù)抓取的垂直智能爬蟲數(shù)據(jù)收集方法,其特征在于:所述分布式數(shù)據(jù)庫存儲(chǔ)方式,將抓取的數(shù)據(jù)進(jìn)行編號,通過機(jī)器選擇后,將數(shù)據(jù)推送到指定的存儲(chǔ)器中,并將數(shù)據(jù)存放位置存放到爬蟲節(jié)點(diǎn)服務(wù)器上。
【文檔編號】G06F17/30GK104346328SQ201310310298
【公開日】2015年2月11日 申請日期:2013年7月23日 優(yōu)先權(quán)日:2013年7月23日
【發(fā)明者】王專, 張海龍, 馬和平, 郭鳳林, 王曉鐘, 龐紹進(jìn), 王祚德, 靳彩娟 申請人:同程網(wǎng)絡(luò)科技股份有限公司