requests中get和post傳參
阿新 • • 發佈:2019-02-17
get請求
get(url, params=None, **kwargs)
requests實現get請求傳參的兩種方式
方式一:
import requests
url = 'http://www.baidu.com/s?wd=python' # 使用?攜帶引數
r = requests.get(url)
print(r.url)
執行結果:
http://www.baidu.com/s?wd=python
方式二:
import requests url = 'http://www.baidu.com/s' params = {'wd': 'python'} # 也可以將攜帶的引數傳給params r = requests.get(url, params=params) print(r.url) 執行結果: http://www.baidu.com/s?wd=python
推薦使用第一種方式,程式碼簡潔,如果需要引數化url中的引數可以參照如下方式:
import requests
lists = ['python', 'php', 'Java']
for i in lists:
url = 'http://www.baidu.com/s?wd=%s' % (str(i))
r = requests.get(url)
print(r.url)
執行結果:
http://www.baidu.com/s?wd=python
http://www.baidu.com/s?wd=php
http://www.baidu.com/s?wd=Java
post請求
post(url, data=None, json=None, **kwargs)
post請求是我們常說的提交表單,表單的資料內容就是post請求的引數,request實現post請求需設定請求引數data,資料格式可以為字典、元組、列表和json格式,不同資料格式有不同的優勢。
示例程式碼:
import requests # import json """ 字典轉json方法 data = {'key1': '1', 'key2': '2'} data = json.dumps(data) """ url = 'http://www.baidu.com' data = 'python' r = requests.post(url, data=data) # 使用data攜帶引數 print(r.text)
data是傳送請求到網站(伺服器)的資料。
注意:
requests的get和post方法的請求引數分別是params 和 data,不要混淆兩者的使用要求。
獲取相應內容
- r.status_code:響應狀態碼
- r.raw:原始響應體,使用r.raw.read()讀取
- r.content:位元組方式的響應體,需要進行解碼
- r.text:字串方式的響應體,會自動更具響應頭部的字元編碼進行解碼
- r.headers:以字典物件儲存伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在,則返回None
- r.json():request中內建的json解碼器
- r.raise_for_status():請求失敗(非200響應),丟擲異常
- r.url:獲取請求的url
- r.cookies:獲取請求後的cookies
- r.encoding:獲取編碼格式