requests庫基本使用
阿新 • • 發佈:2021-08-05
1 import requests 2 #傳送get請求 3 response = requests.get("http://www.baidu.com/") 4 5 #傳送POST請求 6 response = requests.post("http://www.baidu.com/") 7 8 response = requests.get("https://www.sogou.com/") 9 10 #檢視相應內容,response.text返回的是Unicode資料 11 print(type(response.text)) #str 12 print(response.text) #網頁原碼 13 14 15 #檢視相應內容,response.content返回的是位元組流資料 16 print(type(response.content)) #Bytes 17 print(response.content.decode('utf-8'))#經過自己方式的解碼 18 19 #檢視完整url地址 20 print(response.url) #https://www.sogou.com/ 21 22 #檢視響應頭部字元編碼 23 print(response.encoding) #utf-8 24 25 #檢視響應碼 26 print(response.status_code) #200
Requests使用代理:
由於相對於爬蟲,加入用自己電腦的ip地址,去爬取目標網頁,由於訪問次數過多,會被伺服器標記為非正常訪問,會禁止你繼續訪問改網頁
怎麼解決呢?
可以在第三方網站使用代理,相當於偽造一個ip地址去爬取目標網頁,代理的ip地址有無數個,故這樣,就能一直訪問目標網頁。
使用方法:只需要在請求方法中(get或者post)傳遞proxies引數即可,程式碼如下:
import requests proxy = { 'http':'xxx.xxx.xxx.xxx:xxxxx' } response = requests.get('http://httpbin.org/ip',proxy=proxy) print(response.text)
#xxx.xxx.xxx.xxx為ip地址,
#xxxxx為埠號
Requests處理cookie資訊:
經常作用在模擬去登入某個網站,同以上只需要在get或者post傳入一個data引數即可
1 import requests 2 response = requests.get('https://www.baidu.com/') 3 print(response.cookies.get_dict())
如果使用requests庫,達到共享cookie的目的,可以用requests提供給我們的session物件,以登入某網站為例:
import requests url = 'xxxxx' data ={ 'xxxxx' #登入名和密碼} headers={ user-agent:‘xxxxxxxx’ } #登入 session = requests.session() session.post(url,data=data,headers=headers) resp = session.get#(目標網站主頁) #必須要登入才能訪問,沒有登入自動跳轉到登陸頁面