欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python網(wǎng)絡爬蟲之HTTP原理

 更新時間:2023年04月10日 11:10:54   作者:愛吃餅干的小白鼠  
在寫爬蟲之前,我們還需要了解一些基礎知識,如HTTP原理、網(wǎng)頁的基礎知識、爬蟲的基本原理、Cookies的基本原理等。本文中,我們就對這些基礎知識做一個簡單的總結,需要的朋友參考一下

??爬蟲基礎

在寫爬蟲之前,我們還需要了解一些基礎知識,如HTTP原理、網(wǎng)頁的基礎知識、爬蟲的基本原理、Cookies的基本原理等。本文中,我們就對這些基礎知識做一個簡單的總結。

??HTTP 基本原理

在本文中,我們會詳細了解 HTTP的基本原理,了解在瀏覽器中敲入URL 到獲取網(wǎng)頁內(nèi)容之間發(fā)生了什么。了解了這些內(nèi)容,有助于我們進一步了解爬蟲的基本原理。

?URI和 URL

這里我們先了解一下URI和URL,URI的全稱為Uniform Resource Identifier,即統(tǒng)―資源標志符,URL的全稱為Universal Resource Locator,即統(tǒng)一資源定位符。

URL是URI的子集,也就是說每個URL都是URI,但不是每個URI都是 URL。那么,怎樣的URI不是URL呢?URI還包括一個子類叫作 URN,它的全稱為Universal Resource Name,即統(tǒng)―資源名稱。URN 只命名資源而不指定如何定位資源,比如urn:isbn:0451450523指定了一本書的ISBN,可以唯一標識這本書,但是沒有指定到哪里定位這本書,這就是URN。URL、URN和URI的關系。

但是在目前的互聯(lián)網(wǎng)中,URN用得非常少,所以幾乎所有的URI都是URL,一般的網(wǎng)頁鏈接我們既可以稱為URL,也可以稱為URI,我個人習慣稱為URL。

?超文本

接下來,我們再了解一一個概念——超文本, 其英文名稱叫作hypertext,我們在瀏覽器里看到的網(wǎng)
頁就是超文本解析而成的,其網(wǎng)頁源代碼是一系列HTML代碼,里面包含了-系列標簽,比如img顯
示圖片,p指定顯示段落等。瀏覽器解析這些標簽后,便形成了我們平??吹降木W(wǎng)頁,而網(wǎng)頁的源代碼HTML就可以稱作超文本。

例如,我們在Chrome瀏覽器里面打開任意一一個頁面,如淘寶首頁,右擊任一地方并選擇 “檢查”
項(或者直接按快捷鍵F12),即可打開瀏覽器的開發(fā)者工具,這時在Elements 選項卡即可看到當前
網(wǎng)頁的源代碼,這些源代碼都是超文本,如圖所示。

?HTTP 和HTTPS

在百度的首頁, URL的開頭會有http 或https,這就是訪問資源需要的協(xié)議類型。有時,我們還會看到ftp、sftp、 smb 開頭的URL,它們都是協(xié)議類型。在爬蟲中,我們抓取的頁面通常就是http或https協(xié)議的,這里首先了解一下這兩 個協(xié)議的含義。

HTTP的全稱是Hyper Text Transfer Protocol, 中文名叫作超文本傳輸協(xié)議。HTTP協(xié)議是用于從網(wǎng)絡傳輸超文本數(shù)據(jù)到本地瀏覽器的傳送協(xié)議,它能保證高效而準確地傳送超文本文檔。HTTP由萬維網(wǎng)協(xié)會( World Wide Web Consortium )和Internet工作小組IETF ( Internet Engineering Task Force )共同合作制定的規(guī)范,目前廣泛使用的是HTTP1.1版本。

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

HTTPS的安全基礎是SSL,因此通過它傳輸?shù)膬?nèi)容都是經(jīng)過SSL加密的,它的主要作用可以分
為兩種。

  • 建立一個信息安全通道來保證數(shù)據(jù)傳輸?shù)陌踩?/li>
  • 確認網(wǎng)站的真實性,凡是使用了HTTPS的網(wǎng)站,都可以通過點擊瀏覽器地址欄的鎖頭標志來查看網(wǎng)站認證之后的真實信息,也可以通過CA機構頒發(fā)的安全簽章來查詢。

 現(xiàn)在越來越多的網(wǎng)站和App都已經(jīng)向HTTPS方向發(fā)展,例如:

  • 蘋果公司強制所有ioS App在2017年1月1日前全部改為使用HTTPS加密,否則App就無法在應用商店上架。
  • 谷歌從2017年1月推出的Chrome 56開始,對未進行HTTPS加密的網(wǎng)址鏈接亮出風險提示,即在地址欄的顯著位置提醒用戶“此網(wǎng)頁不安全" 。
  • 騰訊微信小程序的官方需求文檔要求后臺使用HTTPS請求進行網(wǎng)絡通信,不滿足條件的域名和協(xié)議無法請求。

 ?HTTP 請求過程

我們在瀏覽器中輸人一一個URL,回車之后便會在瀏覽器中觀察到頁面內(nèi)容。實際上,這個過程是

瀏覽器向網(wǎng)站所在的服務器發(fā)送了一個請求,網(wǎng)站服務器接收到這個請求后進行處理和解析,然后返回對應的響應,接著傳回給瀏覽器。響應里包含了頁面的源代碼等內(nèi)容,瀏覽器再對其進行解析,便將網(wǎng)頁呈現(xiàn)了出來。

 此處客戶端即代表我們自己的PC或手機瀏覽器,服務器即要訪問的網(wǎng)站所在的服務器。

?請求

請求,由客戶端向服務端發(fā)出,可以分為4部分內(nèi)容:請求方法( Request Method)、請求的網(wǎng)址
( Request URL )、請求頭( Request Headers )、請求體( Request Body )。

  • 請求方法

常見的請求方法有兩種: GET和POST。

在瀏覽器中直接輸入URL并回車,這便發(fā)起了一個GET請求,請求的參數(shù)會直接包含到URL里。例如,在百度中搜索Python,這就是一一個GET請求,鏈接為htps://www baidu. com/,其中URL中包含了請求的參數(shù)信息,這里參數(shù)wd表示要搜尋的關鍵字。POST 請求大多在表單提交時發(fā)起。比如,對于一個登錄表單,輸人用戶名和密碼后,點擊“登錄”按鈕,這通常會發(fā)起一個 POST請求,其數(shù)據(jù)通常以表單的形式傳輸,而不會體現(xiàn)在URL中。

GET和POST請求方法有如下區(qū)別:

  • GET請求中的參數(shù)包含在URL里面,數(shù)據(jù)可以在URL中看到,而POST請求的URL不會包含這些數(shù)據(jù),數(shù)據(jù)都是通過表單形式傳輸?shù)?,會包含在請求體中。
  • GET請求提交的數(shù)據(jù)最多只有1024字節(jié),而POST方式?jīng)]有限制。

一般來說,登錄時,需要提交用戶名和密碼,其中包含了敏感信息,使用GET方式請求的話,密碼就會暴露在URL里面,造成密碼泄露,所以這里最好以POST方式發(fā)送。上傳文件時,由于文件內(nèi)容比較大,也會選用POST方式。

我們平常遇到的絕大部分請求都是GET或POST請求,另外還有一些請求方法, 如GET、HEAD、
POST、PUT、 DELETE、OPTIONS、CONNECT、TRACE等。

  • 請求的網(wǎng)址
請求的網(wǎng)址,即統(tǒng)一資源定 位符URL,它可以唯一確定 我們想請求的資源。
  • 請求頭
請求頭,用來說明服務器要使用的附加信息,比較重要的信息有Cookie . Referer. User-Agent等。
  • 請求體
請求體一般承載的內(nèi)容是 POST請求中的表單數(shù)據(jù),而對于GET請求,請求體則為空。

?響應

響應,由服務端返回給客戶端,可以分為三部分:響應狀態(tài)碼( Response Status Code).響應頭( Response Headers )和響應體( Response Body )。

  •  響應狀態(tài)碼
響應狀態(tài)碼表示服務器的響應狀態(tài),如200代表服務器正常響應,404代表頁面未找到,500代表
服務器內(nèi)部發(fā)生錯誤。在爬蟲中,我們可以根據(jù)狀態(tài)碼來判斷服務器響應狀態(tài),如狀態(tài)碼為200,則
證明成功返回數(shù)據(jù),再進行進一步的處理, 否則直接忽略。
 
  • 響應頭
響應頭包含了服務器對請求的應答信息,如Content-Type、Server、 Set-Cookie 等。
  • 響應體
最重要的當屬響應體的內(nèi)容了。響應的正文數(shù)據(jù)都在響應體中,比如請求網(wǎng)頁時,它的響應體
就是網(wǎng)頁的HTML代碼;請求- -張圖片時 ,它的響應體就是圖片的二進制數(shù)據(jù)。我們做爬蟲請
求網(wǎng)頁后,要解析的內(nèi)容就是響應體.

到此這篇關于Python網(wǎng)絡爬蟲之HTTP原理的文章就介紹到這了,更多相關Python網(wǎng)絡HTTP原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python3利用smtplib通過qq郵箱發(fā)送郵件方法示例

    python3利用smtplib通過qq郵箱發(fā)送郵件方法示例

    python實現(xiàn)郵件發(fā)送較為簡單,主要用到smtplib這個模塊,所以下面這篇文章主要給大家介紹了關于python3利用smtplib通過qq郵箱發(fā)送郵件的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-12-12
  • 對Python捕獲控制臺輸出流的方法詳解

    對Python捕獲控制臺輸出流的方法詳解

    今天小編就為大家分享一篇對Python捕獲控制臺輸出流的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python實現(xiàn)下載文件的三種方法

    python實現(xiàn)下載文件的三種方法

    本篇文章主要介紹了python實現(xiàn)下載文件的三種方法,最常用的方法就是通過Http利用urllib或者urllib2模塊還有requests,有興趣的可以了解一下。
    2017-02-02
  • Python基于OpenCV實現(xiàn)視頻的人臉檢測

    Python基于OpenCV實現(xiàn)視頻的人臉檢測

    這篇文章主要為大家詳細介紹了Python基于OpenCV實現(xiàn)視頻的人臉檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Pygame實現(xiàn)監(jiān)聽鼠標示例詳解

    Pygame實現(xiàn)監(jiān)聽鼠標示例詳解

    這篇文章主要介紹了通過Pygame模塊實現(xiàn)監(jiān)聽鼠標的功能,文章的示例代碼講解詳細,對我們的學習或工作有一定的價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • python中關于CIFAR10數(shù)據(jù)集的使用

    python中關于CIFAR10數(shù)據(jù)集的使用

    這篇文章主要介紹了python中關于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python opencv檢測目標顏色的實例講解

    python opencv檢測目標顏色的實例講解

    下面小編就為大家分享一篇python opencv檢測目標顏色的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解Python 最短匹配模式

    詳解Python 最短匹配模式

    這篇文章主要介紹了如何實現(xiàn)Python 最短匹配模式,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python3中str、bytes、bytearray轉化

    Python3中str、bytes、bytearray轉化

    本文主要介紹了Python3中str、bytes、bytearray轉化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 解決Python pip 自動更新升級失敗的問題

    解決Python pip 自動更新升級失敗的問題

    今天小編就為大家分享一篇解決Python pip 自動更新升級失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論