成為搜索產品經理(2):認識網絡爬蟲
在上文中,筆者介紹了互聯網的發展、搜索引擎的發展,從目錄搜索引擎講到搜索引擎。本章節,我們來繼續聊一聊搜索產品背后的技術。
因為我本身并不從事技術崗位,本篇文章的讀者,我也默認是與我一樣,不從事技術崗位,但對技術有一定感知的同學,我將盡力將文章寫得簡單、易懂。
索引引擎系統由多個子模塊組成,先來了解第一個模塊,網絡爬蟲。
一、網絡爬蟲是什么?
用一個程序自動地將所有的網頁下載到本地,在本地形成互聯網的鏡像備份。
二、通用爬蟲框架
了解通用爬蟲框架之前,讓我們再次回顧上個章節講過的超鏈接(hyperlinks)。
瀏覽網頁時,點擊超鏈接,瀏覽器就可跳轉到相應的網頁。有了超鏈接,我們可以從任何一個網頁出發,用圖的遍歷算法,自動地訪問每一個網頁并把他們存起來。
(圖的遍歷算法,在這里不做解釋,有興趣的同學,可以自己查詢)
上述說法較為抽象,讓我們通過一個實例來了解。
網絡爬蟲如何下載整個互聯網呢?
參考上圖,從一家門戶網站的首頁開始。我們任意選擇一家門戶網站的首頁,將其內容下載下來,并對內容進行分析,于是,我們能獲取門戶網站首頁的所有超鏈接。接著,我們分別進入不同的超鏈接,比如,進入超鏈接一,重復對該網站進行內容下載。
當然,也需要記載哪個網頁被下載過了,避免重復。
三、網絡爬蟲的特性
實用的爬蟲系統應該具備如下幾種特性:
3.1 高性能
互聯網網頁浩如煙海,因此爬蟲的性能至關重要。性能定義為爬蟲下載網頁的速度,具體評價指標為爬蟲每秒能下載的網頁數量。單位時間能夠下載網頁數量越多,性能越高。
3.2 可擴展性
因為互聯網網頁數量巨大,即使單個爬蟲性能很高,要完成爬蟲任務,所耗費的時間也是極長。為了盡可能縮短抓取周期,爬蟲系統應該有很好的可擴展性,可以通過增加爬蟲數量來達到此目的。
3.3 健壯性
爬蟲要訪問各種類型的網站服務器,可能會遇到很多種非正常情況,比如網頁HTML編碼不規范,被抓取服務器突然死機。爬蟲對各種異常情況能夠正確處理非常重要,否則可能會不定期停止工作。
3.4 友好性
爬蟲的友好性包含兩方面的含義:
1. 保護網站的部分私密性
2. 減少被抓取網站的網絡負載
四、爬蟲質量的評價標準
從用戶體驗角度,我們需要對爬蟲質量進行衡量,有以下3個指標:
1. 抓取網頁覆蓋率
2. 抓取網頁時新性
3. 抓取網頁重要性
4.1 覆蓋率
覆蓋率 = 爬蟲抓取的網頁數量 / 互聯網所有網頁數量的比例
覆蓋率高,等價于搜索引擎的召回率越高。
上圖中,互聯網有5個網頁,爬蟲系統抓取了其中3個,因此召回率 = 3 / 5 = 60%
4.2 時效性
對很多抓到本地的網頁來說,很多網頁可能已經發生變化,或者被刪除,爬蟲完整抓取一輪需要較長的時間周期,所以抓取到的網頁中必有一部分是過期的數據,即不能在網頁變化后第一時間反映到網頁庫中,所以網頁庫中過期的數據越少,則網頁的時效性越好,這對用戶體驗的作用非常重要。
4.3 重要性
互聯網網頁眾多,但是每個網頁重要性差異很大,比如來自雅虎新聞的網頁和某個作弊網頁相比,重要性有很大差異。如果搜索引擎爬蟲抓回來的網頁大都是比較重要的網頁,則其在抓取網頁重要性方面做得很好。
本章介紹了,搜索引擎的第一步,網絡爬蟲,分別從網絡爬蟲系統,網絡爬蟲的性能,以及網絡爬蟲的評價指標三大模塊,對網絡爬蟲進行了講解。
下一章,我們講搜索引擎索引。
參考
- 數學之美
- 智能時代
- 這就是搜索引擎核心技術詳解
本文由 @一顆西蘭花 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
求更新啊
您有搜索相關的群之類的嗎?想多學習一下呢
繼續啊,老板!小迷哥等你更新呢!
這完全是seo的部分知識
SEO(Search Engine Optimization):漢譯為搜索引擎優化。是一種方式:利用搜索引擎的規則提高網站在有關搜索引擎內的自然排名。目的是讓其在行業內占據領先地位,獲得品牌收益?!俣劝倏?>> SEO的目標是提高網站的自然排名,當然是需要了解搜索引擎的規則
個人覺得稍微淺了些,如果深入講下就好了??
好的呀!會深入分析的
菜鳥一枚,感謝通俗地分享,學習了
不客氣