Requests庫入門
阿新 • • 發佈:2019-01-06
Requests庫
- 7個主要方法
(1) requests.requests()
(2) requests.get()
(3) requests.head()
(4) requests.post()
(5) requests.put()
(6) requests.patch()
(7) requests.delete()
- response物件的屬性:
|屬性 |說明 |
|:------:|:------:|
|r.status_code | HTTP請求的返回狀態,200表示連線成功,404表示失敗 |
|r.text | HTTP響應內容的字串形式,即,url對應的頁面內容 |
|r.encoding | 從HTTP header中猜測的響應內容編碼方式 |
|r.apparent_encoding |從內容中分析出的響應內容編碼方式(備選編碼方式) |
|r.content | HTTP響應內容的二進位制形式 | - 爬取網頁通用程式碼框架:
import requests
def getHTMLText(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "Something Wrong!!!"
** requests訪問控制引數:
(1) params : 字典或位元組序列,作為引數增加到url中
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.url)
http://python123.io/ws?key1=value1&key2=value2
(2) data : 字典、位元組序列或檔案物件,作為Request的內容
kv = {'key1': 'value1', 'key2': 'value2'} r = requests.request('POST', 'http://python123.io/ws', data=kv) body = '主體內容' r = requests.request('POST', http://python123.io/ws',data=body)
(3) json : JSON格式的資料,作為Request的內容
kv = {'key1': 'value1'}
r = requests.request('POST', 'http://python123.io/ws', json=kv)
(4)headers : 字典,HTTP定製頭
hd = {'user‐agent': 'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers=hd)
(5)files : 字典型別,傳輸檔案
fs = {'file': open('data.xls', 'rb')}
r = requests.request('POST', 'http://python123.io/ws', files=fs)
(6)timeout : 設定超時時間,秒為單位
r = requests.request('GET', 'http://www.baidu.com', timeout=10)
(7)proxies : 字典型別,設定訪問代理伺服器,可以增加登入認證
pxs = { 'http': 'http://user:[email protected]:1234'
'https': 'https://10.10.10.1:4321' }
r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)
(8)allow_redirects : True/False,預設為True,重定向開關
(9)stream : True/False,預設為True,獲取內容立即下載開關
(10)verify : True/False,預設為True,認證SSL證書開關
(11)cert : 本地SSL證書路徑
(12)cookies : 字典或CookieJar,Request中的cookie
(13)auth : 元組,支援HTTP認證功能