官术网_书友最值得收藏!

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:獲取編碼格式。

主站蜘蛛池模板: 登封市| 吴堡县| 三河市| 木里| 乌审旗| 澎湖县| 灵石县| 西城区| 岳池县| 邓州市| 库尔勒市| 边坝县| 梁平县| 同心县| 岐山县| 峨眉山市| 商丘市| 任丘市| 射洪县| 铜梁县| 大庆市| 武功县| 额尔古纳市| 海安县| 洛浦县| 隆尧县| 望江县| 舞阳县| 崇州市| 迁西县| 静安区| 嵊泗县| 通榆县| 汝阳县| 浦县| 藁城市| 湘潭市| 广宁县| 岚皋县| 高密市| 潢川县|