本發(fā)明專利技術(shù)的目的在于提供一種分布式垂直爬蟲服務系統(tǒng)的優(yōu)化方法,該方法將原有的爬蟲服務系統(tǒng)拆分為下載服務和頁面分析邏輯兩部分,且將該下載服務和分析邏輯均部署在多個云主機上,任務隊列也拆分為下載任務隊列和分析任務隊列。本發(fā)明專利技術(shù)方法優(yōu)化的爬蟲服務系統(tǒng)能夠提升垂直爬蟲在處理大量數(shù)據(jù)信息時的效率,增強對對采用了延遲加載的動態(tài)HTML頁面的抓取能力,對于頁面下載邏輯和分析處理邏輯進行有效地管理和擴展,對網(wǎng)站主的爬蟲防御策略提供有效地規(guī)避。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及網(wǎng)絡數(shù)據(jù)傳輸方法,具體來說涉及。
技術(shù)介紹
隨著互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)中包含的信息內(nèi)容越來越多,搜索引擎可以幫助人們在海量信息中尋找自己感興趣的內(nèi)容,一般的搜索引擎,如百度、Google和Bing等,都是面向所有用戶提供互聯(lián)網(wǎng)內(nèi)容搜索服務。這些搜索引擎需要通過爬蟲技術(shù)不斷地從互聯(lián)網(wǎng)上獲取信息,并將這些信息保存起來,以便人們方便地檢索這些信息。由于需要爬取的數(shù)據(jù)量巨大,因此大規(guī)模的搜索引擎往往采取分布式處理機制,即建立分布式爬蟲服務系統(tǒng)。這些爬蟲從統(tǒng)一的下載隊列中獲取目標URL,然后將目標網(wǎng)頁下載存儲到指定的位置。搜索引擎越來越多,這些搜索引擎的爬蟲不斷地獲取網(wǎng)站的內(nèi)容,網(wǎng)站系統(tǒng)的壓力越來越大,1994年6月30日,在經(jīng)過搜索引擎人員以及被搜索引擎抓取的網(wǎng)站站長共同討論后,正式發(fā)布了一份行業(yè)規(guī)范,即Robots協(xié)議。Robots協(xié)議(也稱為爬蟲協(xié)議、機器人協(xié)議等)的全稱是“網(wǎng)絡爬蟲排除標準”(Robots Exclus1n Protocol),網(wǎng)站通過Robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。由于人們在信息檢索時都帶有明確的目標,而一般的搜索引擎返回的信息過于繁雜,甚至有些不相干的信息也被檢索出來,人們希望搜索引擎可以針對某個特定領域提供信息檢索服務,同時還希望搜索引擎能夠?qū)z索出的內(nèi)容做一些基本的分析處理,垂直搜索引擎便應運而生。垂直搜索引擎往往只面向特定領域,如去哪網(wǎng)僅面向在線旅游領域,因此它所爬取的內(nèi)容不必覆蓋整個互聯(lián)網(wǎng),而僅僅是特定領域的網(wǎng)站即可。但他需要對這些網(wǎng)站內(nèi)容進行簡單的處理,如格式轉(zhuǎn)換或按排序某些特征排序等。目前垂直搜索引擎沿用了一般搜索引擎的設計方法,在總體結(jié)構(gòu)上采用分布式處理機制,在爬蟲邏輯單元上采用一體化設計模式。一般搜索引擎在爬蟲處理邏輯方面的工作比較簡單,只需要下載并存儲即可,而垂直爬蟲的處理邏輯比較負載,除了下載和存儲之夕卜,還需要對網(wǎng)頁內(nèi)容進行簡單的分析處理。隨著大數(shù)據(jù)時代的到來,垂直爬蟲所需要處理的信息量越來越多,部分網(wǎng)站又采取了動態(tài)頁面技術(shù),使得網(wǎng)頁的下載和分析邏輯越來越復雜,而由于傳統(tǒng)的爬蟲服務系統(tǒng)在爬蟲邏輯單元上采用一體化設計模式,使得爬蟲邏輯單元性能低下。此外,由于部分網(wǎng)站主們不遵守Robots協(xié)議,這也導致垂直爬蟲服務系統(tǒng)幾乎無法正常工作。
技術(shù)實現(xiàn)思路
本專利技術(shù)的目的在于提供,該方法能夠提升垂直爬蟲在處理大量數(shù)據(jù)信息時的效率,增強對對采用了延遲加載的動態(tài)HTML頁面的抓取能力,對于頁面下載邏輯和分析處理邏輯進行有效地管理和擴展,對網(wǎng)站主的爬蟲防御策略提供有效地規(guī)避。本專利技術(shù)的目的可通過以下的技術(shù)措施來實現(xiàn):,包括如下內(nèi)容:將原有的爬蟲服務系統(tǒng)拆分為下載服務和頁面分析邏輯兩部分,且將該下載服務和分析邏輯均部署在多個云主機上,任務隊列也拆分為下載任務隊列和分析任務隊列。其中,所述下載服務采用如下下載任務流程:(1.1)下載服務從下載隊列中獲取下載任務;(1.2)下載服務判斷下載任務中的頁面類型;(1.3)根據(jù)頁面類型加載頁面下載邏輯單元;(1.4)頁面下載邏輯單元讀取下載參數(shù);(1.5)頁面下載邏輯單元根據(jù)兩次任務的最小時間間隔隨機生成本次任務結(jié)束后的休眠時間;(1.6)頁面下載邏輯單元在可選的UserAgent列表中隨機選擇一個作為本次任務的 UserAgent ;(1.7)頁面下載邏輯單元在可選的REFERER列表中隨機選擇一個作為本次任務的REFERER ;(1.8)頁面下載邏輯單元向目標URL發(fā)出HTTP請求;(1.9)頁面下載邏輯單元判斷服務器的返回值,并根據(jù)返回值確定下載是否成功。所述頁面分析邏輯采用如下頁面分析任務流程:(2.1)當下載任務狀態(tài)變?yōu)槌晒螅螺d任務守護進程會將下載任務轉(zhuǎn)移至分析任務隊列中;(2.2)頁面分析邏輯將從分析隊列中獲取任務信息;(2.3)頁面分析邏輯將根據(jù)分析任務中的類名,調(diào)用相應的Java類,并將目標URL保存路徑和分析結(jié)果保存路徑以命令行參數(shù)形式傳遞給Java類;(2.4)待Java類運行完畢后,判斷退出結(jié)果是否為1,將任務狀態(tài)更新為成功;(2.5)如果為I則表示分析程序正常結(jié)束,否則表示分析程序運行出錯;(2.6)頁面分析邏輯將判斷出錯次數(shù),一旦次數(shù)超過3次則向管理員發(fā)出告警并將任務狀態(tài)更新為失敗。其中頁面類型方式分為靜態(tài)頁面和動態(tài)頁面兩種。所述步驟(1.3)中根據(jù)頁面類型加載頁面下載邏輯單元包括:如果頁面類型為靜態(tài)頁面,則加載靜態(tài)頁面下載邏輯單元;如果頁面類型為動態(tài)頁面,則加載動態(tài)頁面下載邏輯單元。所述步驟(1.9)中頁面下載邏輯單元判斷服務器的返回值,并根據(jù)返回值確定下載是否成功的具體過程包括:對于靜態(tài)頁面,靜態(tài)頁面下載邏輯單元判斷服務器的返回值是否為200 ;如果返回值為200,則接收返回內(nèi)容,并將返回內(nèi)容寫入目標路徑中,之后將下載任務狀態(tài)更新為下載成功;否則將任務狀態(tài)更新為下載失敗;對于動態(tài)頁面,動態(tài)頁面下載邏輯單元判斷服務器的返回值是否為200 ;如果返回值不為200,則將任務狀態(tài)更新為下載失敗;如果返回值為200,根據(jù)任務中的延遲加載所使用的JavaScript函數(shù)名,觸發(fā)JavaScript函數(shù),此時JavaScript會再次向服務端發(fā)起HTTP請求;如果該再次向服務端發(fā)起HTTP請求的回返值為200,則并將返回內(nèi)容寫入目標路徑中,之后將下載任務狀態(tài)更新為下載成功;否則將任務狀態(tài)更新為下載失敗。所述下載任務隊列中的每個下載任務中描述了目標URL、頁面類型、下載頁面的保存路徑、動態(tài)頁面延遲加載所使用的JavaScript函數(shù)名、頁面分析類型。所述頁面分析類型用于指示采用何種方式來分析下載頁面。所述爬蟲服務系統(tǒng)的存儲設備采用HDFS的分布式存儲方式,下載頁面的保存路徑形式為 ^hdf s: //namenode: namenodeport/parent/child,,。所述分析任務描述了目標URL保存路徑、分析類的類名和分析結(jié)果保存路徑。其中分析類的類名指定了被調(diào)用的Java類。分析結(jié)果保存路徑同樣采用HDFS形式。本專利技術(shù)的有益效果在于:(I)采用分治的思想將原有爬蟲處理邏輯拆分為下載和分析兩部,使得下載效率和分析效率都可以得到較大的提升。(2)下載邏輯被獨立拆分后,通過接口技術(shù)可以有效地擴展下載能力,既能支持靜態(tài)頁面下載,又能支持動態(tài)頁面下載。(3)分析邏輯被獨立拆分后,可以通過分析任務管理各種分析邏輯,分析邏輯的實現(xiàn)方式既可以是普通的Java程序,又可以是基于Hadoop的MapReduce程序,這種方法不僅能增強分析邏輯的處理性能,還可以降低分析邏輯的開發(fā)難度。(4)通過隨機參數(shù)的控制,可以將爬蟲行為混入用戶訪問行為中,使得網(wǎng)站主難以有效地識別爬蟲行為,提升了爬蟲下載頁面的成功率。【附圖說明】圖1是現(xiàn)有的一般分布式垂直爬蟲服務系統(tǒng)工作流程;圖2是本專利技術(shù)的一般分布式垂直爬蟲服務系統(tǒng)結(jié)構(gòu)示意圖;圖3是本專利技術(shù)的一般分布式垂直爬蟲服務系統(tǒng)的下載服務流程圖;圖4是本專利技術(shù)的一般分布式垂直爬蟲服務系統(tǒng)的頁面分析邏輯流程圖。【具體實施方式】現(xiàn)有的一般分布式垂直爬蟲服務系統(tǒng)工作流程如圖1所示。爬蟲服務以多線程或多進程方式運行,他們可能部署在企業(yè)內(nèi)部的一個主機或多臺主機上本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種分布式垂直爬蟲服務系統(tǒng)的優(yōu)化方法,其特征在于:將原有的爬蟲服務系統(tǒng)拆分為下載服務和頁面分析邏輯兩部分,且將該下載服務和分析邏輯均部署在多個云主機上,任務隊列也拆分為下載任務隊列和分析任務隊列。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:閆峰,李桂兵,魏繼超,
申請(專利權(quán))人:廣州極數(shù)寶數(shù)據(jù)服務有限公司,
類型:發(fā)明
國別省市:廣東;44
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。