更新時(shí)間:2017-11-10 來源:黑馬程序員 瀏覽量:
1、網(wǎng)絡(luò)爬蟲的定義
網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人),是一種按照一定的規(guī)則,自動(dòng)的抓取萬維網(wǎng)信息的程序或者腳本,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。【注:需要更多免費(fèi)學(xué)習(xí)視頻+資料+源碼,請加QQ:2632311208】
2、網(wǎng)絡(luò)爬蟲與瀏覽器相似之處
網(wǎng)絡(luò)爬蟲的抓取過程可以理解為 模擬瀏覽器操作的過程。
瀏覽器的主要功能就是向服務(wù)器發(fā)出請求,在瀏覽器窗口中展示您選擇的網(wǎng)絡(luò)資源。這里所說的資源一般是指 HTML 文檔,也可以是 PDF、圖片或其他的類型。
資源的位置由用戶使用 URI(統(tǒng)一資源標(biāo)示符)指定。
瀏覽器解釋并顯示HTML文件的方式是在HTML和CSS規(guī)范中指定的。這些規(guī)范由網(wǎng)絡(luò)標(biāo)準(zhǔn)化組織 W3C(萬維網(wǎng)聯(lián)盟)進(jìn)行維護(hù)。
3、網(wǎng)絡(luò)爬蟲抓什么
一般來講,抓取的內(nèi)容主要來源于網(wǎng)頁,目前,隨著這幾年移動(dòng)互聯(lián)網(wǎng)的發(fā)展,越來越多信息來源于移動(dòng)互聯(lián)網(wǎng)App、H5等,所以爬蟲就不止局限于一定要抓取解析網(wǎng)頁,還有移動(dòng)互聯(lián)網(wǎng)app、H5等的網(wǎng)絡(luò)請求進(jìn)行抓取
對網(wǎng)絡(luò)爬蟲而言,需要抓取的是某個(gè)網(wǎng)站或者某個(gè)應(yīng)用的內(nèi)容,提取有用的價(jià)值。
4、了解網(wǎng)絡(luò)請求
網(wǎng)絡(luò)爬蟲以HTTP、HTTPS請求為主,讀取網(wǎng)頁內(nèi)容,提取有用的價(jià)值,內(nèi)容一般分為兩部分,非結(jié)構(gòu)化的文本,或結(jié)構(gòu)化的文本。
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。
4.1 HTTP請求的方法
HTTP/1.1協(xié)議中共定義了八種方法(有時(shí)也叫“動(dòng)作”)來表明Request-URI指定的資源的不同操作方式:
OPTIONS
返回服務(wù)器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務(wù)器發(fā)送'*'的請求來測試服務(wù)器的功能性。
HEAD
向服務(wù)器索要與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會(huì)被返回。這一方法可以在不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
GET
向特定的資源發(fā)出請求。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在Web Application中。其中一個(gè)原因是GET可能會(huì)被網(wǎng)絡(luò)蜘蛛等隨意訪問。
POST
向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改。
PUT
向指定資源位置上傳其最新內(nèi)容。
DELETE
請求服務(wù)器刪除Request-URI所標(biāo)識的資源。
TRACE
回顯服務(wù)器收到的請求,主要用于測試或診斷。
CONNECT
HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。
4.2 HTTP響應(yīng)的代碼
服務(wù)器程序響應(yīng)的第一行叫狀態(tài)行。狀態(tài)行以HTTP版本號開始,后面跟著3位數(shù)字表示響應(yīng)代碼,最后是易讀的響應(yīng)短語。根據(jù)第一位可以把響應(yīng)分成5類:
圖1、HTTP響應(yīng)代碼
4.3實(shí)例演示
我們用瀏覽器去訪問https://www.baidu.com, 在瀏覽器中打開開發(fā)人員工具(F12),F(xiàn)12 開發(fā)人員工具是可幫助生成和調(diào)試網(wǎng)頁的一套工具。按下F12按鈕調(diào)出開發(fā)者工具界面,點(diǎn)擊第一行“Network”選項(xiàng)卡,可見下方以詳細(xì)信息的方式列舉出了網(wǎng)頁中的元素。
找到我們請求的鏈接https://www.baidu.com,響應(yīng)消息的狀態(tài)行是:HTTP/1.1 200 OK,其中HTTP/1.1對應(yīng)版本號、200對應(yīng)response-code;如下圖2所示
圖2、GET / HTTP/1.1請求的響應(yīng)消息
本文版權(quán)歸黑馬程序員人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院
首發(fā):http://python.itheima.com/
Python培訓(xùn)之人工智能3.0時(shí)代來襲,誰會(huì)是下一代霸主?(二)
2017-08-31Python培訓(xùn)之人工智能3.0時(shí)代來襲,誰會(huì)是下一代霸主?(一)
2017-08-31Python培訓(xùn)之姜光敏:隨著AI人工智能的發(fā)展,未來的人力資源從業(yè)者將面臨失業(yè)
2017-08-31Python培訓(xùn)之人工智能技術(shù)是基于大數(shù)據(jù)吃飯的?
2017-08-31Python培訓(xùn)之Python超過R,成為數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的常用語言
2017-08-31Python培訓(xùn)之一張圖看AI醫(yī)療:241起國內(nèi)融資,幫你發(fā)現(xiàn)AI醫(yī)療的下一個(gè)熱點(diǎn)
2017-08-31