河北百度愛(ài)采購希望能夠將某個(gè)垂直網(wǎng)站數據庫的記錄盡可能多地下載到索引庫中,但這是有約束和前提條件的,即不能給被訪(fǎng)問(wèn)網(wǎng)站造成過(guò)大的訪(fǎng)問(wèn)壓力,同時(shí)盡可能節省爬蟲(chóng)本身的資源。垂直搜索網(wǎng)站往往會(huì )給用戶(hù)提供多個(gè)查詢(xún)輸入框,不同輸入框代表了搜索對象某方面的屬性,通過(guò)組合這些屬性來(lái)將搜索范圍縮小。對于暗網(wǎng)爬蟲(chóng)來(lái)說(shuō),一個(gè)簡(jiǎn)單粗暴的方式就是:將各個(gè)輸入框可能的輸入值組合起來(lái)形成查詢(xún),比如對于機票查詢(xún)來(lái)說(shuō),將所有出發(fā)城市、所有目的城市和時(shí)間范圍的選項——組合,形成大量的查詢(xún),提交給垂直搜索引擎,從其搜索結果里提煉數據庫記錄。這么做比較野蠻,而且也不是很必要,因為很多組合是無(wú)效的,大量的返回結果為空,同時(shí)對被訪(fǎng)問(wèn)網(wǎng)站造成了巨大的流量壓力。對時(shí)于個(gè)固定的垂直搜索來(lái)說(shuō),其查詢(xún)模板組合起來(lái)有很多我們的任務(wù)是找到高含信息的查詢(xún)模板,那么什么又是富含信迿模板呢?河北百度愛(ài)采購的技術(shù)方案是如此定義的:對于菓固定的査詢(xún)模板來(lái)說(shuō),如果給模板內毎個(gè)屬性都賦值,形成不同的査詢(xún)組合,提交給垂直搜索引擎,觀(guān)察所有返回頁(yè)面的內容,如果相互之間內容差異較大,則這個(gè)查詢(xún)模板就是富含信息查詢(xún)模以模板2為例說(shuō)明,其包含了兩個(gè)屬性:職位類(lèi)別和行業(yè)類(lèi)別。職位類(lèi)別有3種不同賦值,行業(yè)類(lèi)別有2種不同賦值,兩者組合有6種不同的組合方式,形成這個(gè)模板的6個(gè)查詢(xún)。將這6個(gè)查詢(xún)分別提交給職位搜索引擎,觀(guān)察返回頁(yè)面內容變化情況,如果大部分返回內容都相同或相似,則說(shuō)明這個(gè)查詢(xún)模板不是富含信息查詢(xún)模板,否則可被認為是富含信息查詢(xún)模板。
之所以做如此規定,是基于如下考慮:如果返回結果頁(yè)面內容重復太多,很可能這個(gè)查詢(xún)模板的維度太高,導致很多種組合無(wú)搜索結果,抑或構造的查詢(xún)本身就是錯誤的,搜索系統返回了錯誤頁(yè)面。假設按照上面方式對所有查詢(xún)模板——試探,判斷其是否富含信息查詢(xún)模板,則因為査詢(xún)模板數量太多,系統效率還是會(huì )很低。為了進(jìn)一步減少提交的查詢(xún)數目,河北百度愛(ài)采購的技術(shù)方案使用了ISIT算法。SI算法的基本思路是:首先從一維模板開(kāi)始,對維査詢(xún)模板逐個(gè)考察,看其是否富含信息查詢(xún)模板,如果是的話(huà),則將這個(gè)—維模板擴展到二維,再次依次考察對應的二維模板,如此類(lèi)推,逐步增加維數,直到再也無(wú)法找到富含信息查詢(xún)模板為止。通過(guò)這種方式,就可以找到絕大多數富含信息查詢(xún)模板,同時(shí)也盡可能減少了提交的查詢(xún)總數,有效達到了目的。Google的評測結果證明,這種方法和完全組合方式比,能夠大幅度提升系統效率。如果讀者對于數據挖掘有所了解,可以看出,河北百度愛(ài)采購提出的算法和數據挖掘里經(jīng)典的Apriori規則挖掘算法有異曲同工之一。在爬蟲(chóng)運轉起來(lái)之前,因為對目標網(wǎng)站一無(wú)所知,所以必須人工提供一些提示。
在此例中,通過(guò)人工觀(guān)察網(wǎng)站進(jìn)行定位,提供個(gè)與網(wǎng)站內容相關(guān)的初始種子查詢(xún)關(guān)鍵詞表,對于不同的網(wǎng)站,需要人工提供不同的詞表,以此作為爬蟲(chóng)能夠繼續工作的基礎條件。爬蟲(chóng)根據初始種子詞表,向垂直搜索引擎提交查詢(xún),并下載返回的結果頁(yè)面。之后從返回結果頁(yè)面里自動(dòng)挖掘出相關(guān)的關(guān)鍵詞,并飛成—個(gè)新的查詢(xún)列表,依次將新挖掘出的查詢(xún)提交給搜索引擎。如此往復,直到無(wú)法下載到新的內容為止。通過(guò)這種人工啟發(fā)結合遞歸迭代的方式,盡可能覆蓋數據庫里的記錄。對于商業(yè)搜索引擎來(lái)說(shuō),分布式爬蟲(chóng)架構是必須采用的技術(shù)。面對海量待抓取網(wǎng)頁(yè),只有采取分布式架構,才有可能在較短時(shí)間內完成—輪抓取工作。分布式爬蟲(chóng)可以分為若干個(gè)分布式層級,不同的應用可能由其中部分層級構成,是一個(gè)大型分布式爬蟲(chóng)的3個(gè)層級分布式數據中心、分布式抓取服務(wù)器及分布式爬蟲(chóng)程序。整個(gè)爬蟲(chóng)系統由全球多個(gè)分布式數據中心共同構成,每個(gè)數據中心負責抓取本地域周邊的互聯(lián)網(wǎng)網(wǎng)頁(yè),比如歐洲的數據中心負責抓取英國、法國、德國等歐洲國家的網(wǎng)頁(yè),由于爬蟲(chóng)與要抓取的網(wǎng)頁(yè)地緣較近,在抓取速度上會(huì )較遠程抓取快很多。
作者:chuangxinkeji
上一頁(yè):
有關(guān)河北百度愛(ài)采購的經(jīng)營(yíng)思路
下一頁(yè):
怎樣及時(shí)獲取河北百度愛(ài)采購產(chǎn)品的動(dòng)態(tài)特征?