學(xué)習(xí)網(wǎng)絡(luò)爬蟲需要了解哪些知識?

2021-02-15    分類: 網(wǎng)站建設(shè)

爬蟲定義、分類和流程

爬蟲定義

網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人)就是模擬瀏覽器發(fā)送網(wǎng)絡(luò)請求,接收請求響應(yīng),一種按照一定的規(guī)則,自動地抓取互聯(lián)網(wǎng)信息的程序。爬蟲就是模擬瀏覽器的行為,越像越好,越像就越不容易被發(fā)現(xiàn)。原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做。

爬蟲的分類

通用爬蟲:通常指搜索引擎的爬蟲

聚焦爬蟲:針對特定網(wǎng)站的爬蟲

爬蟲的用途

  • 今日頭條
  • 網(wǎng)易云音樂
  • 12306搶票
  • 網(wǎng)站自動投票
  • 短信轟炸
  • 等等

爬蟲的流程


  1. 向起始url發(fā)送請求,并獲取響應(yīng)
  2. 對響應(yīng)進行提取
  3. 如果提取url,則繼續(xù)發(fā)送請求獲取響應(yīng)
  4. 如果提取數(shù)據(jù),則將數(shù)據(jù)進行保存

robots 協(xié)議

Robots 協(xié)議:網(wǎng)站通過 Robots 協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是道德層面上的約束 例如:淘寶的 robots 協(xié)議

總結(jié)

  • 爬蟲概念:模擬瀏覽器發(fā)送網(wǎng)絡(luò)請求,接收請求響應(yīng)。只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做。
  • 爬蟲的分類:聚焦爬蟲、通用爬蟲
  • 爬蟲的流程:
  1. 向起始 url 發(fā)送請求,并獲取響應(yīng)
  2. 對響應(yīng)進行提取
  3. 如果提取 url,則繼續(xù)發(fā)送請求獲取響應(yīng)
  4. 如果提取數(shù)據(jù),則將數(shù)據(jù)進行保存

HTTP 與 HTTPS 的概念

HTTP

概念:HTTP(超文本傳輸協(xié)議)是應(yīng)用層上的一種客戶端/服務(wù)端模型的通信協(xié)議,它由請求和響應(yīng)構(gòu)成,且是無狀態(tài)的。 協(xié)議:協(xié)議規(guī)定了通信雙方必須遵守的數(shù)據(jù)傳輸格式,這樣通信雙方按照約定的格式才能準確的通信。 無狀態(tài):無狀態(tài)是指兩次諒解通信之間是沒有任何聯(lián)系的,每次都是一個新的連接,服務(wù)端不會記錄前后的請求信息。

HTTP 請求流程


  1. 瀏覽器通過域名解析服務(wù)器(DNS)獲取IP地址
  2. 瀏覽器先向 IP 發(fā)起請求,并獲取相應(yīng)
  3. 在返回的響應(yīng)內(nèi)容(html)中,會帶有 css、js、圖片等 url 地址,以及 ajax 代碼,瀏覽器按照響應(yīng)內(nèi)容中的順序依次發(fā)送其他的請求,并獲取相應(yīng)的響應(yīng)
  4. 瀏覽器每獲取一個響應(yīng)就對展示出的結(jié)果進行添加(加載),js,css 等內(nèi)容會修改頁面的內(nèi)容,js也可以重新發(fā)送請求,獲取響應(yīng)
  5. 從獲取第一個響應(yīng)并在瀏覽器中展示,直到最終獲取全部響應(yīng),并在展示的結(jié)果中添加內(nèi)容或修改————這個過程叫做瀏覽器的渲染

五層網(wǎng)絡(luò)模型


HTTP協(xié)議結(jié)構(gòu)圖


網(wǎng)絡(luò)模型對應(yīng)關(guān)系

  1. HTTP、RTSP、FTP -------> 應(yīng)用層
  2. TCP、UDP -------> 傳輸層
  3. IP -------> 網(wǎng)絡(luò)層
  4. 數(shù)據(jù)鏈路 -------> 數(shù)據(jù)鏈路層
  5. 物理介質(zhì) -------> 物理層

url 地址格式


格式說明: scheme://host[:port]/path/…/[?query-string][#anchor]
  1. scheme:協(xié)議(例如:http, https, ftp)
  2. host:服務(wù)器的 IP 地址或者域名
  3. port:服務(wù)器的端口(如果是走協(xié)議默認端口,缺省端口80)
  4. path:訪問資源的路徑
  5. query-string:參數(shù),發(fā)送給 http 服務(wù)器的數(shù)據(jù)
  6. anchor:錨(跳轉(zhuǎn)到網(wǎng)頁的指定錨點位置)

HTTP 請求

請求格式


案例


  • 請求方式

根據(jù) HTTP 標準,HTTP 請求可以使用多種請求方法。HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD 方法。HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

請求方式描述GET請求指定的頁面信息,并返回實體主體。HEAD類似于 get 請求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報頭POST向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST 請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改。PUT從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容DELETE請求服務(wù)器刪除指定的頁面。CONNECTHTTP/1.1 協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。OPTIONS允許客戶端查看服務(wù)器的性能。TRACE回顯服務(wù)器收到的請求,主要用于測試或診斷。


  • 常見請求頭

請求頭作用CookieCookieUser-Agent瀏覽器名稱Referer頁面跳轉(zhuǎn)處Host主機和端口號Connection鏈接類型Upgrade-Insecure-Requests升級為 HTTPS 請求Accept傳輸文件類型Accept-Encoding文件編解碼格式x-requested-with : XMLHttpRequestajax 請求

HTTP 響應(yīng)

  • 響應(yīng)格式

HTTP響應(yīng)也由四個部分組成,分別是:狀態(tài)行、消息報頭、空行(回車符 + 換行符)和響應(yīng)正文。

  • 響應(yīng)頭

響應(yīng)頭作用Location這個頭配合 302 狀態(tài)碼使用,告訴用戶端找誰。Set-Cookie設(shè)置和頁面關(guān)聯(lián)的 CookieContent-Type服務(wù)器通過這個頭,回送數(shù)據(jù)的類型Server服務(wù)器通過這個頭,告訴瀏覽器服務(wù)器的類型Content-Length服務(wù)器通過這個頭,告訴瀏覽器回送數(shù)據(jù)的長度Connection服務(wù)器通過這個頭,響應(yīng)完是保持鏈接還是關(guān)閉鏈接


  • HTTP 狀態(tài)碼

當瀏覽者訪問一個網(wǎng)頁時,瀏覽者的瀏覽器會向網(wǎng)頁所在服務(wù)器發(fā)出請求。當瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會返回一個包含 HTTP 狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求。HTTP 狀態(tài)碼的英文為 HTTP Status Code。HTTP 狀態(tài)碼由三個十進制數(shù)字組成,第一個十進制數(shù)字定義了狀態(tài)碼的類型,后兩個數(shù)字沒有分類的作用。HTTP 狀態(tài)碼共分為 5 種類型

分類分類描述1**信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作2**成功,操作被成功接收并處理3**重定向,需要進一步的操作以完成請求4**客戶端錯誤,請求包含語法錯誤或無法完成請求5**服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤

  • 常見的 HTTP 狀態(tài)碼:
  • 200 - 請求成功
  • 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它 URL
  • 404 - 請求的資源(網(wǎng)頁等)不存在
  • 500 - 內(nèi)部服務(wù)器錯誤

HTTPS

1- HTTP + ssl (安全套接字層),即帶有安全套接字層的超本文傳輸協(xié)議
2- 默認端口號:443

  • HTTPS 作用

在傳輸過程中對數(shù)據(jù)進行加密,防止中間路由器、交換機等中間的路由設(shè)備對數(shù)據(jù)進行篡改。
  • HTTP 與 HTTPS 優(yōu)缺點

HTTP 因為不需要對數(shù)據(jù)進行加密所以性能更高,但是安全性差。HTTPS 雖然安全性高,但是因為瀏覽器和服務(wù)器端需要對數(shù)據(jù)進行加解密,所以占用服務(wù)器資源。
  • 當前形式

注意:目前 HTTPS 是未來主流,微信小程序,iOS 客戶端,android 客戶端的接口提供都需要 HTTPS 接口支持。

文章名稱:學(xué)習(xí)網(wǎng)絡(luò)爬蟲需要了解哪些知識?
分享地址:http://www.muchs.cn/news16/101066.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司、定制開發(fā)做網(wǎng)站、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)