更新時間:2016年09月29日16時09分 來源:傳智播客 瀏覽次數(shù):
1、網(wǎng)絡爬蟲的定義
網(wǎng)絡爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡機器人),是一種按照一定的規(guī)則,自動的抓取萬維網(wǎng)信息的程序或者腳本,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。
2、網(wǎng)絡爬蟲與瀏覽器相似之處
網(wǎng)絡爬蟲的抓取過程可以理解為 模擬瀏覽器操作的過程。
瀏覽器的主要功能就是向服務器發(fā)出請求,在瀏覽器窗口中展示您選擇的網(wǎng)絡資源。這里所說的資源一般是指 HTML 文檔,也可以是 PDF、圖片或其他的類型。
資源的位置由用戶使用 URI(統(tǒng)一資源標示符)指定。
瀏覽器解釋并顯示HTML文件的方式是在HTML和CSS規(guī)范中指定的。這些規(guī)范由網(wǎng)絡標準化組織 W3C(萬維網(wǎng)聯(lián)盟)進行維護。
3、網(wǎng)絡爬蟲抓什么
一般來講,抓取的內容主要來源于網(wǎng)頁,目前,隨著這幾年移動互聯(lián)網(wǎng)的發(fā)展,越來越多信息來源于移動互聯(lián)網(wǎng)App、H5等,所以爬蟲就不止局限于一定要抓取解析網(wǎng)頁,還有移動互聯(lián)網(wǎng)app、H5等的網(wǎng)絡請求進行抓取
對網(wǎng)絡爬蟲而言,需要抓取的是某個網(wǎng)站或者某個應用的內容,提取有用的價值。
4、了解網(wǎng)絡請求
網(wǎng)絡爬蟲以HTTP、HTTPS請求為主,讀取網(wǎng)頁內容,提取有用的價值,內容一般分為兩部分,非結構化的文本,或結構化的文本。
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應用最為廣泛的一種網(wǎng)絡協(xié)議。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。
4.1 HTTP請求的方法
HTTP/1.1協(xié)議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
OPTIONS
返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發(fā)送'*'的請求來測試服務器的功能性。
HEAD
向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。
GET
向特定的資源發(fā)出請求。注意:GET方法不應當被用于產(chǎn)生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網(wǎng)絡蜘蛛等隨意訪問。
POST
向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT
向指定資源位置上傳其最新內容。
DELETE
請求服務器刪除Request-URI所標識的資源。
TRACE
回顯服務器收到的請求,主要用于測試或診斷。
CONNECT
HTTP/1.1協(xié)議中預留給能夠將連接改為管道方式的代理服務器。
4.2 HTTP響應的代碼
服務器程序響應的第一行叫狀態(tài)行。狀態(tài)行以HTTP版本號開始,后面跟著3位數(shù)字表示響應代碼,最后是易讀的響應短語。根據(jù)第一位可以把響應分成5類:
圖1、HTTP響應代碼
4.3實例演示
我們用瀏覽器去訪問https://www.baidu.com, 在瀏覽器中打開開發(fā)人員工具(F12),F(xiàn)12 開發(fā)人員工具是可幫助生成和調試網(wǎng)頁的一套工具。按下F12按鈕調出開發(fā)者工具界面,點擊第一行“Network”選項卡,可見下方以詳細信息的方式列舉出了網(wǎng)頁中的元素。
找到我們請求的鏈接https://www.baidu.com,響應消息的狀態(tài)行是:HTTP/1.1 200 OK,其中HTTP/1.1對應版本號、200對應response-code;如下圖2所示
圖2、GET / HTTP/1.1請求的響應消息