零基礎入門網絡爬蟲,強烈推薦這幾個必學知識點

做者簡介:崔慶才,《Python3 網絡爬蟲開發實戰》做者。本文選自:拉勾教育專欄《52講輕鬆搞定網絡爬蟲》

你好,我是你的爬蟲課老師崔慶才,本課時咱們會詳細講解 HTTP 的基本原理,有助於咱們進一步掌握爬蟲的基本原理。小程序

本文選自:拉勾教育《52講輕鬆搞定網絡爬蟲》微信小程序

01 HTTP 和 HTTPS

在淘寶的首頁https://www.taobao.com/中,URL 的開頭會有 http 或 https,這個就是訪問資源須要的協議類型,有時咱們還會看到 ftp、sftp、smb 開頭的 URL,那麼這裏的 ftp、sftp、smb 都是指的協議類型。在爬蟲中,咱們抓取的頁面一般就是 http 或 https 協議的,咱們在這裏首先來了解一下這兩個協議的含義。瀏覽器

HTTP 的全稱是 Hyper Text Transfer Protocol,中文名叫做超文本傳輸協議,HTTP 協議是用於從網絡傳輸超文本數據到本地瀏覽器的傳送協議,它能保證高效而準確地傳送超文本文檔。HTTP 由萬維網協會(World Wide Web Consortium)和 Internet 工做小組 IETF(Internet Engineering Task Force)共同合做制定的規範,目前普遍使用的是 HTTP緩存

1.1 版本。安全

HTTPS 的全稱是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全爲目標的 HTTP 通道,簡單講是 HTTP 的安全版,即 HTTP 下加入 SSL 層,簡稱爲 HTTPS。服務器

HTTPS 的安全基礎是 SSL,所以經過它傳輸的內容都是通過 SSL 加密的,它的主要做用能夠分爲兩種:微信

  • 創建一個信息安全通道,來保證數據傳輸的安全。
  • 確認網站的真實性,凡是使用了 HTTPS 的網站,均可以經過點擊瀏覽器地址欄的鎖頭標誌來查看網站認證以後的真實信息,也能夠經過 CA 機構頒發的安全簽章來查詢。

如今愈來愈多的網站和 App 都已經向 HTTPS 方向發展。例如:網絡

  • 蘋果公司強制全部 iOS App 在 2017 年 1 月 1 日 前所有改成使用 HTTPS 加密,不然 App 就沒法在應用商店上架。
  • 谷歌從 2017 年 1 月推出的 Chrome 56 開始,對未進行 HTTPS 加密的網址連接亮出風險提示,即在地址欄的顯著位置提醒用戶 「此網頁不安全」。
  • 騰訊微信小程序的官方需求文檔要求後臺使用 HTTPS 請求進行網絡通訊,不知足條件的域名和協議沒法請求。

所以,HTTPS 已經已是大勢所趨。ide

本文選自:拉勾教育《52講輕鬆搞定網絡爬蟲》工具

02 HTTP 請求過程

咱們在瀏覽器中輸入一個 URL,回車以後即可以在瀏覽器中觀察到頁面內容。實際上,這個過程是瀏覽器向網站所在的服務器發送了一個請求,網站服務器接收到這個請求後進行處理和解析,而後返回對應的響應,接着傳回給瀏覽器。響應裏包含了頁面的源代碼等內容,瀏覽器再對其進行解析,便將網頁呈現了出來,傳輸模型如圖所示。

此處客戶端即表明咱們本身的 PC 或手機瀏覽器,服務器即要訪問的網站所在的服務器。

爲了更直觀地說明這個過程,這裏用 Chrome 瀏覽器的開發者模式下的 Network 監聽組件來作下演示,它能夠顯示訪問當前請求網頁時發生的全部網絡請求和響應。

打開 Chrome 瀏覽器,右擊並選擇 「檢查」 項,便可打開瀏覽器的開發者工具。這裏訪問百度http://www.baidu.com/,輸入該 URL 後回車,觀察這個過程當中發生了怎樣的網絡請求。能夠看到,在 Network 頁面下方出現了一個個的條目,其中一個條目就表明一次發送請求和接收響應的過程,如圖所示。

咱們先觀察第一個網絡請求,即http://www.baidu.com,其中各列的含義以下。

  • 第一列 Name:請求的名稱,通常會將 URL 的最後一部份內容看成名稱。
  • 第二列 Status:響應的狀態碼,這裏顯示爲 200,表明響應是正常的。經過狀態碼,咱們能夠判斷髮送了請求以後是否獲得了正常的響應。
  • 第三列 Type:請求的文檔類型。這裏爲 document,表明咱們此次請求的是一個 HTML 文檔,內容就是一些 HTML 代碼。
  • 第四列 Initiator:請求源。用來標記請求是由哪一個對象或進程發起的。
  • 第五列 Size:從服務器下載的文件和請求的資源大小。若是是從緩存中取得的資源,則該列會顯示 from cache。
  • 第六列 Time:發起請求到獲取響應所用的總時間。
  • 第七列 Waterfall:網絡請求的可視化瀑布流。

咱們點擊這個條目便可看到其更詳細的信息,如圖所示。

首先是 General 部分,Request URL 爲請求的 URL,Request Method 爲請求的方法,Status Code 爲響應狀態碼,Remote Address 爲遠程服務器的地址和端口,Referrer Policy 爲 Referrer 判別策略。

再繼續往下,能夠看到,有 Response Headers 和 Request Headers,這分別表明響應頭和請求頭。請求頭裏帶有許多請求信息,例如瀏覽器標識、Cookies、Host 等信息,這是請求的一部分,服務器會根據請求頭內的信息判斷請求是否合法,進而做出對應的響應。圖中看到的 Response Headers 就是響應的一部分,例如其中包含了服務器的類型、文檔類型、日期等信息,瀏覽器接受到響應後,會解析響應內容,進而呈現網頁內容。

好了,今天的內容就所有講完了,本次分享中,咱們瞭解了 HTTP 的基本原理。本次涉及的知識點須要好好掌握,後面分析網頁請求時會常常用到。

本文選自:拉勾教育《52講輕鬆搞定網絡爬蟲》

相關文章
相關標籤/搜索