- 實戰Python網絡爬蟲
- 黃永祥
- 691字
- 2019-11-22 18:44:42
6.2 請求方式
HTTP的常用請求是GET和POST, Requests對此區分兩種不同的請求方式。GET請求有兩種形式,分別是不帶參數和帶參數,以百度為例:

判斷URL是否帶有參數,可以對符號“?”判斷。一般網址末端(域名)帶有“?”,就說明該URL是帶有請求參數的,反之則不帶有參數。GET參數說明如下:
(1)wd是參數名,參數名由網站(服務器)規定。
(2)python是參數值,可由用戶自行設置。
(3)如果一個URL有多個參數,參數之間用“&”連接。
Requests實現GET請求,對于帶參數的URL有兩種請求方式:

兩種方式都是請求同一個URL,在實際開發中建議使用第一種方式,因為代碼簡潔,如果參數是動態變化的,那么可使用字符串格式化對URL動態設置,例如'https://www.baidu.com/s?wd=%s' %('python')。
POST請求是我們常說的提交表單,表單的數據內容就是POST的請求參數。Requests實現POST請求需設置請求參數data,數據格式可以為字典、元組、列表和JSON格式,不同的數據格式有不同的優勢。代碼如下:

可以看出,左邊的data是POST方法的參數,右邊的data是發送請求到網站(服務器)的數據。值得注意的是,Requests的GET和POST方法的請求參數分別是params和data,別混淆兩者的使用要求。
當向網站(服務器)發送請求時,網站會返回相應的響應(response)對象,包含服務器響應的信息。Requests提供以下方法獲取響應內容。
● r.status_code:響應狀態碼。
● r.raw:原始響應體,使用r.raw.read()讀取。
● r.content:字節方式的響應體,需要進行解碼。
● r.text:字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。
● r.headers:以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在,則返回None。
● r.json():Requests中內置的JSON解碼器。
● r.raise_for_status():請求失敗(非200響應),拋出異常。
● r.url:獲取請求鏈接。
● r.cookies:獲取請求后的cookies。
● r.encoding:獲取編碼格式。
- CockroachDB權威指南
- Building Modern Web Applications Using Angular
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- PostgreSQL 11從入門到精通(視頻教學版)
- Blender 3D Incredible Machines
- C語言實驗指導及習題解析
- Python全棧數據工程師養成攻略(視頻講解版)
- Learning Apache Karaf
- 汽車人機交互界面整合設計
- Vue.js 3應用開發與核心源碼解析
- 虛擬現實:引領未來的人機交互革命
- Mastering Node.js
- Python程序設計:基礎與實踐
- 計算機軟件項目實訓指導
- JavaScript程序設計基礎教程(慕課版)