日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python爬虫学习笔记1】网络协议及请求基础

發布時間:2023/12/10 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python爬虫学习笔记1】网络协议及请求基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http協議與https協議

HTTP協議(全稱為HyperText Transfer Protocol,超文本傳輸協議),是發布和接收HTML頁面的方法,其服務端口號為80。

HTTPS協議為HTTP協議的加密版本,其在HTTP下加入了SSL層,服務端口號為443。

URL結構解析

URL(Uniform Resource Locator,統一資源定位符),用于從互聯網上獲取某個資源,其組成格式如下:scheme://host:port/path/?query-string=xxx#anchor

scheme:代表訪問協議類型,如http、https和ftp等。

host:域名,比如 “cn.bing.com”。

port:端口號,訪問一個網站時瀏覽器默認使用80端口。

path:查找路徑,比如 “https://www.imooc.com/course/list”,后面的course/list就是path。

query-string:查詢字符串,比如 “https://cn.bing.com/search?q=python”,后面的q=python就是查詢字符串。

anchor:錨點,用于頁面定位。

瀏覽器請求一個url,瀏覽器會對url進行編碼——除英文字母,數字和部分符號外,其他的全部使用百分號與十六進制碼值進行編碼。如在Chrome中地址欄輸入“https://cn.bing.com/search?q=博客園”,則會自動解析為“https://cn.bing.com/search?q=%E5%8D%9A%E5%AE%A2%E5%9B%AD”

http請求發送過程

首先,用戶在瀏覽器地址欄中輸入URL并回車后瀏覽器會向HTTP服務器發送一個Request請求,服務器接收到請求后會返回一個Response文件對象給瀏覽器。此后瀏覽器分析Response中的HTML,同時發現其中所引用的其他文件(如Image、Js、CSS等),瀏覽器再次向服務器發送這些文件的request請求以下載文件。當所有文件成功下載完畢后,瀏覽器便可以將網頁完整地構造顯示出來。

如下為訪問微軟Bing主頁的請求:

請求方法

在HTTP協議中,定義了八種請求方法(參見下表)

?? 方法????????????????????????????????????????????? 描述
GET請求頁面,并返回頁面內容

HEAD

類似于GET請求,只不過返回的響應zho那個沒有具體的內容,用于獲取報頭
POST大多用于提交表單或上傳文件,數據包含在請求體中
PUT從客戶端向服務器傳送的數據取代指定文檔中的內容
DELETE請求服務器刪除指定的頁面
CONNECT把服務器當作跳板,讓服務器代替客戶端訪問其他網頁
OPTIONS允許客戶端查看服務器的性能
TRACE回顯服務器收到的請求,主要用于測試或診斷

其中,GET與POST請求較為常用。一般情況下,GET僅用于獲取數據,POST用于上傳數據,但有時為應對反爬機制,需要用POST請求代替GET請求。

常用請求頭參數

在HTTP協議中,請求頭用來說明要傳遞給服務器使用的附加信息,如下為訪問拉勾網的請求頭。

其中較為重要的參數有User-Agent、Referer 和 Cookie。

User-Agent:一個特殊字符串頭,可以使服務器識別客戶使用的操作系統及版本、瀏覽器及版本等信息。在爬蟲中可以設置此信息來偽裝瀏覽器以反-反爬蟲。

Referer:用于標識請求是從哪個頁面來的。這個一般也可以用來做反爬蟲技術——只有從指定頁面請求才給予響應。

Cookie:HTTP協議無狀態的,即服務器在兩次連續的請求中不會保存是哪個用戶發送的請求,而為了維持前后會話完整性,可以在發送請求時通過附加存儲在用戶本地的Cookie來讓服務器識別出用戶并查出當前狀態。

響應

響應,由服務器返回給客戶端,其中包括三部分內容——響應狀態碼、響應頭和響應體。

1.響應狀態碼

用于表示服務器的相應狀態,常用狀態碼有200(成功,服務器正常返回數據)、 301(永久重定向) 、302(臨時重定向)、400(請求錯誤,服務器無法解析該請求)、403(禁止訪問,服務器拒絕此請求)、404(未找到,服務器找不到請求的頁面)、500(服務器內部錯誤)。

2.響應頭

包含一些服務器對請求的應答信息,如Content-Type(應答的文檔類型,如text/html返回HTML文檔、image/jpeg返回圖片)、Server(服務器信息,如名稱、版本號等)、Set-Cookie(設置Cookies)、Expires(指定響應的過期時間)等。

如拉勾網響應頭信息:

3.響應體

表示響應的正文數據,如網頁的HTML代碼、圖片的二進制數據等。爬蟲請求網頁后要解析的內容就是響應體內容。

轉載于:https://www.cnblogs.com/Unikfox/p/9649149.html

總結

以上是生活随笔為你收集整理的【Python爬虫学习笔记1】网络协议及请求基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。