網絡爬蟲
通用搜索引擎的處理對象是互聯網網頁,目前網頁數量以百億計,搜索引擎的網絡爬蟲能夠高效地將海量的網頁數據傳下載到本地,在本地 形成互聯網網頁的鏡像備份。它是搜索引擎系統中很關鍵也很基礎的構件。
1. 網絡爬蟲本質就是瀏覽器http請求。
瀏覽器和網絡爬蟲是兩種不同的網絡客戶端,都以相同的方式來獲取網頁:
1)首先, 客戶端程序連接到域名系統(DNS)服務器上,DNS服務器將主機 名轉換成ip 地址。
2)接下來,客戶端試着連接具有該IP地址的服務器。服務器上可能有多個 不同進程程序在運行,每個進程程序都在監聽網絡以發現新的選接。.各個進程監聽不同的網絡端口 (port). 端口是一個l6位的數卞,用來辨識不同的服務。Http請求一般默認都是80端口。
3) 一旦建立連接,客戶端向服務器發送一個http請求,服務器接收到請求后,返回響應結果給客戶端。
4)客戶端關閉該連接。
2. 搜索引擎爬蟲架構
但是瀏覽器是用戶主動操作然后完成HTTP請求,而爬蟲需要自動完成http請求,網絡爬蟲需要一套整體架構完成工作。
盡管爬蟲技術經過幾十年的發展,從整體框架上已相對成熟,但隨着互聯網 的不斷發展,也面臨着一些有挑戰性的新問題。
通用的爬蟲框架流程:
1)首先從互聯網頁面中精心選擇一部分網頁,以這 些網頁的鏈接地址作為種子URL。
2)將這些種子URL放入待抓取URL隊列中。
3)爬蟲從待抓取 URL隊列依次讀取,並將URL通過DNS解析,把鏈接地址轉換為網站服務器對應的IP地址。
4)然后將IP地址和網頁相對路徑名稱交給網頁下載器。
5)網頁下載器負責頁面內容的下載。
6)對於下載到本地的網頁,一方面將其存儲到頁面庫中,等待建立索引等后續處理;另一方面將下載網頁的URL放入己抓取URL隊列中,這個隊列記載了爬蟲系統己經下載過的網頁URL,以避免網頁的重復抓取。
7)對於剛下載的網頁,從中抽取出所包含的所有鏈接信息,並在已抓取URL隊列中檢査,如果發現鏈接還沒有被抓取過,則將這個URL放入待抓取URL隊列末尾。
8)在之后的抓取調度中會下載這個URL對應的網頁,如此這般,形成循環,直到待抓取URL隊列為空。
3. 爬蟲抓取策略
在爬蟲系統中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什么樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。
主要有:
1.深度優先搜索策略(順藤摸瓜)
2.廣度優先搜索策略
3.反向鏈接數策略
4.Partial PageRank策略,即最佳優先搜索策略
5.OPIC策略
6.大站優先策略