別問 requests.request () 有多強大,問就是🐂byte

在路上發表於2020-10-29

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) 毫秒

相關文章