據說學習爬蟲必須得會這些Web知識

據說學習爬蟲必須得會這些Web知識

爬蟲定義、分類和流程

爬蟲定義

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

爬蟲的分類

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

聚焦爬蟲:針對特定網站的爬蟲

爬蟲的用途

  • 今日頭條
  • 網易雲音樂
  • 12306搶票
  • 網站自動投票
  • 短信轟炸
  • 等等

爬蟲的流程

據說學習爬蟲必須得會這些Web知識

  1. 向起始url發送請求,並獲取響應
  2. 對響應進行提取
  3. 如果提取url,則繼續發送請求獲取響應
  4. 如果提取數據,則將數據進行保存
據說學習爬蟲必須得會這些Web知識

robots 協議

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

總結

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

HTTP 與 HTTPS 的概念

HTTP

概念:HTTP(超文本傳輸協議)是應用層上的一種客戶端/服務端模型的通信協議,它由請求和響應構成,且是無狀態的。 協議:協議規定了通信雙方必須遵守的數據傳輸格式,這樣通信雙方按照約定的格式才能準確的通信。 無狀態:無狀態是指兩次諒解通信之間是沒有任何聯繫的,每次都是一個新的連接,服務端不會記錄前後的請求信息。

HTTP 請求流程

據說學習爬蟲必須得會這些Web知識

  1. 瀏覽器通過域名解析服務器(DNS)獲取IP地址
  2. 瀏覽器先向 IP 發起請求,並獲取相應
  3. 在返回的響應內容(html)中,會帶有 css、js、圖片等 url 地址,以及 ajax 代碼,瀏覽器按照響應內容中的順序依次發送其他的請求,並獲取相應的響應
  4. 瀏覽器每獲取一個響應就對展示出的結果進行添加(加載),js,css 等內容會修改頁面的內容,js也可以重新發送請求,獲取響應
  5. 從獲取第一個響應並在瀏覽器中展示,直到最終獲取全部響應,並在展示的結果中添加內容或修改————這個過程叫做瀏覽器的渲染
據說學習爬蟲必須得會這些Web知識

五層網絡模型

據說學習爬蟲必須得會這些Web知識

HTTP協議結構圖

據說學習爬蟲必須得會這些Web知識

網絡模型對應關係

  1. HTTP、RTSP、FTP -------> 應用層
  2. TCP、UDP -------> 傳輸層
  3. IP -------> 網絡層
  4. 數據鏈路 -------> 數據鏈路層
  5. 物理介質 -------> 物理層

url 地址格式

據說學習爬蟲必須得會這些Web知識

格式說明: scheme://host[:port]/path/…/[?query-string][#anchor]
  1. scheme:協議(例如:http, https, ftp)
  2. host:服務器的 IP 地址或者域名
  3. port:服務器的端口(如果是走協議默認端口,缺省端口80)
  4. path:訪問資源的路徑
  5. query-string:參數,發送給 http 服務器的數據
  6. anchor:錨(跳轉到網頁的指定錨點位置)
據說學習爬蟲必須得會這些Web知識

HTTP 請求

請求格式

據說學習爬蟲必須得會這些Web知識

案例

據說學習爬蟲必須得會這些Web知識

  • 請求方式


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

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

據說學習爬蟲必須得會這些Web知識


  • 常見請求頭

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

HTTP 響應

  • 響應格式


HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行(回車符 + 換行符)和響應正文。
據說學習爬蟲必須得會這些Web知識


  • 響應頭

響應頭作用Location這個頭配合 302 狀態碼使用,告訴用戶端找誰。Set-Cookie設置和頁面關聯的 CookieContent-Type服務器通過這個頭,回送數據的類型Server服務器通過這個頭,告訴瀏覽器服務器的類型Content-Length服務器通過這個頭,告訴瀏覽器回送數據的長度Connection服務器通過這個頭,響應完是保持鏈接還是關閉鏈接

據說學習爬蟲必須得會這些Web知識

  • HTTP 狀態碼


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

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

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

HTTPS

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


  • HTTPS 作用


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


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


注意:目前 HTTPS 是未來主流,微信小程序,iOS 客戶端,android 客戶端的接口提供都需要 HTTPS 接口支持。據說學習爬蟲必須得會這些Web知識

今天就到這裡啦,喜歡編程的小夥伴可以關注我哦!有學習方面的問題可以私信回覆:學習!


分享到:


相關文章: