一起看看Python之Requests庫
- 2019 年 10 月 4 日
- 筆記
1

/ 寫在前面的話 /
今天資源君帶大家來看看Python的Requests庫,這個庫是基於urllib3所建立的,而且被人們稱為人性化的庫,因為它的程式碼量相比於urllib中的request少了一些,並且很容易上手。下面一起來看看!
2

/ Requests/
1.導入requests庫:
import requests
2.我們首先來講講requests庫裡面的兩種get請求方法:
-第一種:
# 使用get請求, rsp = requests.get(url)
-第二種:
# 使用request請求 rsp1 = requests.request("get", url)
當然傳入的參數不僅僅只是url,還有params以一個字元串字典來提供這些參數,將字典中的參數發送到指定網頁,另外跟request一樣可以設置headers:
url = "http://www.baidu.com/s?" kw = { 'wd': '熊貓' } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' } # 使用get請求, rsp = requests.get(url, params=kw, headers=headers)
3.我們還可以通過requests讀取伺服器響應的內容
r = requests.get('https://api.github.com/events') print(r.text)
列印內容,這裡有伺服器返回的各種各樣的參數(由於返回結果太多就不寫出來了)
4.再來講講requests的post
rsp = requests.post(url, data=data)
直接把想要post的數據放入一個字典中data,然後直接傳參就行了,這裡非常的簡潔
5.再來講講requests里的Cookie
-如果某個響應中包含一些 cookie,你可以快速訪問它們,返回的是一個cookiejar:
r = requests.get('https://api.github.com/events') cookiejar = r.cookies #可以將cookiejar轉化成字典格式 cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
-要想發送你的cookies到伺服器,可以使用 cookies 參數:
r = requests.get(url, cookies=cookies)
cookie是一個字典格式,直接傳參發送
6.requests中的session
-模擬一次會話,從客戶端鏈接伺服器開始到客戶端瀏覽器斷開
-當我們跨請求時保持一些參數,比如在同一個session實例發出的所有請求之間保持cookie
# 創建session對象,可以保持cookie值 ss = requests.session() headers = {'User-Agent':'xxxxxxxxxxxxxx'} data = {'name' : 'xxx'} # 此時由創建的session對象來管理髮出請求 ss.post("http://www.baidu.com", data=data, headers=headers) rs = ss.get('xxxxxxxxxx')
7.requests中的代理proxy
proxy = {'http':'你的代理ip', 'https':'你的代理ip'} rsp = requests.request('get','http://www.baidu.com', proxies=proxy)
-如果你的代理ip是買的,可能會有用戶驗證,這就會使用到HTTP basic Auth
# 格式 用戶名:密碼@代理地址:埠 proxy = {'http':'china:[email protected]:3006'} rsp = requests.get("http://www.baidu.com", proxies=proxy)
-web客戶端驗證
如果遇到web客戶端驗證,需要添加auth=(用戶名,密碼)
auth = ("123","3333") rsp = requests.get("http://www.baidu.com", auth=auth)