Python3 Requests庫基本用法
阿新 • • 發佈:2018-12-24
Requests庫中有7個主要的函式,分別是request(), get(), head(), post(), put(), patch(), delete(). 這七個函式其中request()函式是其餘六個函式的基礎函式,其餘六個函式的實現都是通過呼叫該函式實現的。
方法 | 說明 |
---|---|
requests.request() | 構造一個請求,支撐一下方法的基礎方法 |
requests.get() | 獲取HTML網頁的主要方法,對應於HTTP的GET(請求URL位置的資源) |
requests.head() | 獲取HTML網頁頭資訊的方法,對應於HTTP的HEAD(請求URL位置的資源的頭部資訊) |
requests.post() | 向HTML網頁提交POST請求的方法,對應於HTTP的POST(請求向URL位置的資源附加新的資料) |
requests.put() | 向HTML網頁提交PUT請求的方法,對應於HTTP的PUT(請求向URL位置儲存一個資源,覆蓋原來URL位置的資源) |
requests.patch() | 向HTML網頁提交區域性修改的請求,對應於HTTP的PATCH(請求區域性更新URL位置的資源) |
requests.delete() | 向HTML網頁提交刪除請求,對應於HTTP的DELETE(請求刪除URL位置儲存的資源) |
在這個庫中一般常用的就是get()函式。最基礎的是request()函式,其一共有15個引數, 具體每個引數的用法如下;
引數 | 說明 | 例子 |
---|---|---|
method | 請求方式,對應於get/put/post中七種 | requests.request(‘GET’,url)或者requests.request(‘HEAD’,url)等 |
url | 待獲取的頁面的url連結 | |
params | 將字典或位元組序列,作為引數新增到url中 | |
data | 字典,位元組序列或者檔案物件,作為Request的內容 | |
json | JSON格式的資料,作為Request的內容 | |
headers | 字典,HTTP定製頭 | 可以在請求中附加一些資訊,例如:偽裝自己是一個瀏覽器。例如 r = requests.request(‘POST’, ‘ |
auth | 元組,支援HTTP認證功能 | |
files | 字典型別,傳輸檔案 | fs={‘file’:open(’data.xls’, ‘rb’);r = requests.request(‘POST’, ‘http://python123.io/ws‘, files=fs) |
timeout | 設定超時時間,單位為秒 | |
proxies | 字典型別,設定訪問代理伺服器,可以增加登入認證 | |
allow_redirects | :Truel/False,預設為True,重定向開關 | |
stream | True/False 預設為True | 獲取內容立即下載開關 |
verify | True/False 預設為Ture,認證SSL證書開關 | |
cert | 本地SSL證書路徑 |
下面是一個常用的獲取URL位置資源的基本爬蟲框架。
def getHTMLText(url):
try:
kv = {'user-agent' : 'Mozilla/5.0'}
r = requests.get(url, headers = kv, timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return 'erro'
if __name__ == '__main__':
url = 'https://www.baidu.com/'
print(getHTMLText(url))