requests.request()方法解析
(1)request引數說明
- method: 支援
GET
, OPTIONS
, HEAD
, POST
, PUT
, PATCH
, or DELETE
.
- url: str型別
- params: (可選) http的query。Dict, list of tuples or bytes to send.
params={'q': 'python', 'cat': '1001'}
- data: (可選) Dictionary, list of tuples, bytes, or file-like
- requests預設使用application/x-www-form-urlencoded對POST資料編碼
data={'form_email': 'abc@example.com', 'form_password': '123456'}
- json: (可選) 如果要傳遞JSON資料,可以直接傳入json引數:
params = {'key': 'value'}
requests.request(method="post", url="", json=params) # 內部自動序列化為JSON
- headers: (可選) dict
- cookies: (可選) dict
cs = {'token': '12345', 'status': 'working'}
requests.request(method="get", url="", cookies=cs)
- files: (可選) 上傳檔案需要更復雜的編碼格式,但是requests把它簡化成files引數
- 在讀取檔案時,注意務必使用'rb'即二進位制模式讀取,這樣獲取的bytes長度才是檔案的長度
upload_files = {'file': open('report.xls', 'rb')}
requests.request(method="post", url="", files=upload_files)
- auth: (可選) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
- timeout: (可選) 訪問超時, float(wait for server to send data ) or tuple(connect timeout, read timeout)
- allow_redirects: (可選) 重定向:Boolean. 預設為true。 Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
- proxies: (可選) 設定代理,可抓取所有http和https請求
proxies = {
'http': 'http://10.100.57.47:8001',
'https': 'http://10.100.57.47:8001',
}
requests.get('https://testerhome.com/', proxies=proxies)
- verify: (可選) Boolean,控制是否驗證,預設為True。當verify為True時, 如果想解析https內容,需在Cert引數中新增證照路徑
- stream: (可選) 如果為``False'',則將立即下載響應內容。
- cert: (可選) string 或 元組
- string:為ssl客戶端證照檔案(.pem)的路徑
- 元組:(“證照”,“金鑰”)配對
(2)response引數說明
- 返回狀態碼:r.status_code
- Response Body:
- str: r.text
- Bytes: r.content
- Dict: r.json()
- Response Header(Dict): r.headers
- 自動檢測編碼:r.encoding
- 響應時間: int(r.elapsed.microseconds/1000) 毫秒