程田
雖然已經(jīng)上映有一段時日了,《美國隊長3》仍然是大家熱搜的焦點。當(dāng)你在百度搜索里輸入“美國隊長3”時,會發(fā)現(xiàn)百度為你找到了約有272000個相關(guān)結(jié)果。而當(dāng)你想要搜索最新加入的蜘蛛俠,只要輸入“美國隊長3 蜘蛛俠”,百度就會為你找到約3470000個相關(guān)結(jié)果。在浩如星海的網(wǎng)絡(luò)信息中,究竟是什么技術(shù)幫助我們抓住了真正需要的信息呢?
網(wǎng)絡(luò)搜索靠“神馬”
還記得影片中蜘蛛俠為了能夠迎戰(zhàn)強大的美國隊長,而接受了鋼鐵俠提供的最新技術(shù)裝備嗎?搜索引擎,就是人們在網(wǎng)絡(luò)時代抓取信息時的必備技術(shù)裝備。這套裝備也是在相應(yīng)的條件下不斷進(jìn)步的。據(jù)統(tǒng)計,截至2015年,中國網(wǎng)頁數(shù)量已經(jīng)突破了2000億,人們通過互聯(lián)網(wǎng)一個一個查找信息的手段已經(jīng)OUT。說得再深入一些,你會發(fā)現(xiàn)身邊人們的消費方式也發(fā)生了巨大的改變。那些知名的企業(yè)為了推廣品牌,紛紛加入了網(wǎng)絡(luò)推廣的大軍,就像知名的漫威公司,在營銷自己的電影時也有一套網(wǎng)絡(luò)推廣方案。而搜索引擎,正是網(wǎng)絡(luò)推廣中最廉價、最高效的方式。因此,由于時代的召喚和大眾的需求,搜索引擎自然成為了網(wǎng)絡(luò)搜索中人們的首選。
其實用一句話來說,搜索引擎就是以一定的策略在互聯(lián)網(wǎng)中搜集發(fā)現(xiàn)信息,同時對信息進(jìn)行理解、提取、組織和處理,并為用戶提供檢索服務(wù)的一種方式。
搜索引擎主要有兩種基本的類型:一類是利用全文檢索的技術(shù)型搜索引擎,像大家熟悉的百度、谷歌等。這一類搜索引擎利用數(shù)據(jù)挖掘提取技術(shù)收集網(wǎng)絡(luò)信息,并根據(jù)相應(yīng)的算法建立數(shù)據(jù)庫索引供用戶查詢。這種類型的搜索引擎是最常用的。
而另一類則被稱為分類目錄,這種搜索引擎是通過人工編輯網(wǎng)絡(luò)信息,利用關(guān)鍵字和描述信息進(jìn)行信息檢索,并將符合條件的結(jié)果人工錄入數(shù)據(jù)庫,能夠形成有針對性的逐級查詢。不過也有一個缺點,就是對網(wǎng)站要求特別高,有時即使登錄多次,也不一定會成功。而大家最熟悉的例子大概就是巨難登錄的超級引擎YAHOO了。
搜索引擎的基本構(gòu)造
就像蜘蛛俠的裝備覆蓋了頭、身、手、腳,搜索引擎也從四個基本的部分武裝和完善了信息抓取的技術(shù),它們就是:Spider、索引模塊、信息檢索和用戶接口。
Spider
也就是網(wǎng)絡(luò)爬蟲,它是搜索引擎數(shù)據(jù)收集的關(guān)鍵技術(shù),也是網(wǎng)絡(luò)抓取技術(shù)的重要手段(對于最關(guān)鍵的這點,我們還會在下面說得更詳細(xì))。
索引模塊
利用索引分析器對Spider獲得的信息進(jìn)行分析和處理,過濾掉無效以及冗余的信息,并把信息表示成一種便于建立索引的方式,建立索引數(shù)據(jù)庫,便于用戶查詢信息。
信息檢索
根據(jù)用戶查詢的關(guān)鍵詞從索引數(shù)據(jù)庫中快速查找相應(yīng)的文檔,并進(jìn)行相關(guān)度的計算,然后將結(jié)果根據(jù)相關(guān)度排序反饋給用戶。
用戶接口
用戶接口作為用戶與搜索引擎交互的窗口,將接受的關(guān)鍵字或相關(guān)的重要信息輸入到系統(tǒng)之中,并反饋用戶的查詢結(jié)果。
Spider—信息抓取關(guān)鍵者
如果說,蜘蛛俠裝備的核心技術(shù)是能夠噴射大網(wǎng),并能逮捕敵人的蛛絲發(fā)射器。那么Spider也可以說是搜索引擎中最關(guān)鍵的一環(huán)了。
和蛛絲發(fā)射器的用法差不多,搜索引擎利用Spider尋找網(wǎng)絡(luò)內(nèi)容的基本工作流程,也就是說將網(wǎng)絡(luò)上的HTML文檔使用超鏈接鏈接起來,織成一張大網(wǎng),然后Spider就像蜘蛛一樣沿著這張網(wǎng)把相應(yīng)的網(wǎng)頁信息抓取下來,并抽取相應(yīng)的超鏈接作為下一步爬行的線索(請自行腦補蜘蛛俠不停發(fā)射蛛絲并前進(jìn)的畫面)。當(dāng)搜索完成后,建立相應(yīng)的索引數(shù)據(jù)庫。最后,利用算法對搜索結(jié)果進(jìn)行處理和排序。當(dāng)然了,由于網(wǎng)絡(luò)更新速度快,需要定期地多次爬取以更新相應(yīng)的網(wǎng)絡(luò)信息,避免死鏈接和無效鏈接。
就像超級英雄們在行動之前都會制定相應(yīng)的行動方針,Spider在網(wǎng)絡(luò)中的移動也需要遵循一定的方法和策略。通常的網(wǎng)頁分析方法包括基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、網(wǎng)頁內(nèi)容以及用戶的訪問行為等分析方法?;诰W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的方法主要利用網(wǎng)絡(luò)結(jié)構(gòu)的特性,即相應(yīng)網(wǎng)絡(luò)節(jié)點中的出入度,權(quán)值或節(jié)點粒度,進(jìn)行相應(yīng)的優(yōu)先度(重要性)分析?;诰W(wǎng)頁內(nèi)容的分析方法主要利用了文本檢索的技術(shù),對網(wǎng)頁進(jìn)行快速有效的分類和聚類。基于用戶訪問行為的分析主要根據(jù)用戶行為的上下文信息對網(wǎng)絡(luò)路徑進(jìn)行預(yù)測。
而說到搜索策略,Spider主要有兩種搜索方法:廣度優(yōu)先遍歷法和深度優(yōu)先遍歷法。這就相當(dāng)于超級英雄們的作戰(zhàn)策略了。
廣度優(yōu)先用于網(wǎng)絡(luò)搜索法則,是指Spider會先抓取起始網(wǎng)頁中鏈接的所有網(wǎng)頁,然后再選擇其中的一個鏈接網(wǎng)頁,繼續(xù)抓取在此網(wǎng)頁中鏈接的所有網(wǎng)頁。比如在瀏覽網(wǎng)頁時,先打開你要瀏覽的全部內(nèi)容,像體育板塊,新聞板塊、論壇板塊、財經(jīng)板塊等等,在選擇其中一個板塊后以之前相同的方式向下瀏覽,例如你選擇了體育版塊,再打開籃球版塊,然后再接著打開籃球中的科比新聞,以這樣方式循環(huán)向下瀏覽。
深度優(yōu)先用于網(wǎng)絡(luò)搜索法則是指網(wǎng)絡(luò)爬蟲會從起始頁開始,一個一個鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個起始頁繼續(xù)跟蹤鏈接。換句話說,就是指把一種內(nèi)容看完后再更換其他內(nèi)容,比如瀏覽網(wǎng)頁時,先看體育版塊,在瀏覽體育版塊中的籃球區(qū),籃球區(qū)看完后去看足球區(qū),等所有在體育板塊中我想看完的內(nèi)容都看完后,我再選擇其他版塊進(jìn)行觀看。
雖然從目前的基本工作流程來看,Spider能夠很輕易地實現(xiàn)搜索,但隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)抓取技術(shù)還會面臨新的挑戰(zhàn)。網(wǎng)頁數(shù)量爆發(fā)式的增長,意味著在一定時間之內(nèi),只能抓取其中的一部分。為了更好地抓取信息,Spider不僅需要能夠完成基本的工作流程,還需要研發(fā)者們提供更好的爬取策略。當(dāng)信息抓取技術(shù)進(jìn)一步提升時,就能幫你把想要的信息一網(wǎng)打盡了。