requests庫是python優秀的第三方http請求庫,使用起來簡潔強大,需要額外安裝。
可使用pip工具安裝 :pip install requests
請求網頁
import requests
response = requests.get("")
僅需簡單一步便可實現各種方法的請求(還有post(), put(), delete()等請求方法)
響應的response物件包括text,cookies,content,headers,statuts_code,url,history等屬性可直接使用。
傳入引數
需要在傳入引數時可使用params這個引數。
import requests
data =
r = requests.get('',params=data)
print(r.json()) #json()方法可將json字串轉化為字典,(字串裡必須時json格式)
新增headers
先構造headers字典,在user-agent欄位設定請求頭,再在方法使用headres引數構造請求。
import requests
headers =
r = requests.get('',headers=headers)
post請求
使用data引數傳入資料。
import requests
data =
r = requests.post('',data=data)
基本的請求實現了,而高階一點的功能(如cookies設定,**設定等)用requests庫實現也十分簡單,不用像urllib庫那樣需要用handler來構建opener。
檔案上傳
可用requests模擬提交一些資料檔案:
import requests
files =
r = requests.post('',files=files)
cookies設定
import requests
r = requests.get(')
print(r.cookies)
import requests
headers =
r = requests.get('',headers=headers)
會話維持
用requests.get()等方法開啟的頁面就是乙個新的會話,相當於新開了乙個瀏覽器開啟。 這樣不利於持續的訪問**,這時就需要維持當前會話,requests中使用session物件來維持會話,而不用擔心cookies問題。
import requests
s = requests.session()
s.get('') #設定cookie
r = s.get('') #重新訪問看cookie是否儲存,儲存則說明是同乙個會話。
ssl證書驗證
當傳送http請求時,requests會自動檢查ssl證書,可以使用verify引數設定為false來跳過證書的檢查。
**設定
使用proxies引數設定**:
import requests
proxies =
requests.get('",proxies=proxies)
#如果需要認證,可這樣設定**http://user:password@host:port
超時設定
可使用timeout引數設定響應時間,超過這個時間便會報錯,避免響應太慢時一直等待,時間單位為秒。
r = requests.get('url',timeout=1)
身份認證
#第二種認證方法
print(r.text)這裡引入了request,將各個引數構造成乙個request物件,再用session的prepare_request()方法將其轉化為乙個prepared request物件,最後呼叫send()傳送即可。
更多用法可閱讀reuqests庫的官方文件.
Requests庫基本用法
requests是python實現的最簡單易用的http庫 獲取某個請求 r requests.get print r print type r print r.status code 200get請求引數傳遞1 鍵值對 response1 requests.get print response1....
Requests 高階用法
使用 post 請求提交資料 import requests 檔案上傳 post請求 file print 開始請求 res requests.post files file res res.text print res 使用session物件,維護會話。import requests 會話保持 不...
5 爬蟲 requests庫講解 高階用法
0.檔案上傳 import requests files response requests.post files files print response.text 1.獲取cookies import requests response requests.get print response.c...