Python 爬虫利器一之 Requests 库的用法
簡介
Requests是用python語言基于urllib編寫的,采用的是Apache2 Licensed開源協議的HTTP庫,Requests它會比urllib更加方便,可以節約我們大量的工作。
一、安裝
?pip快速安裝:pip install requests
二、使用
import requestsresponse = requests.get("https://www.baidu.com") print(type(response)) print(response.status_code) print(type(response.text))response.enconding = "utf-8' print(response.text)print(response.cookies)print(response.content) print(response.content.decode("utf-8"))response.text返回的是Unicode格式,通常需要轉換為utf-8格式,否則就是亂碼。response.content是二進制模式,可以下載視頻之類的,如果想看的話需要decode成utf-8格式。
不管是通過response.content.decode("utf-8)的方式還是通過response.encoding="utf-8"的方式都可以避免亂碼的問題發生
2、一大推請求方式
import requests requests.post("http://httpbin.org/post") requests.put("http://httpbin.org/put") requests.delete("http://httpbin.org/delete") requests.head("http://httpbin.org/get") requests.options("http://httpbin.org/get")基本GET:
import requestsurl = 'https://www.baidu.com/' response = requests.get(url) print(response.text)r.encoding ? ? ? ? ? ? ? ? ? ? ? #獲取當前的編碼
r.encoding = 'utf-8' ? ? ? ? ? ? #設置編碼
r.text ? ? ? ? ? ? ? ? ? ? ? ? ? #以encoding解析返回內容。字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。
r.content ? ? ? ? ? ? ? ? ? ? ? ?#以字節形式(二進制)返回。字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。
r.headers ? ? ? ? ? ? ? ? ? ? ? ?#以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None
r.status_code ? ? ? ? ? ? ? ? ? ? #響應狀態碼
r.raw ? ? ? ? ? ? ? ? ? ? ? ? ? ? #返回原始響應體,也就是 urllib 的 response 對象,使用 r.raw.read() ??
r.ok ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看r.ok的布爾值便可以知道是否登陸成功
?#*特殊方法*#
r.json() ? ? ? ? ? ? ? ? ? ? ? ? #Requests中內置的JSON解碼器,以json形式返回,前提返回的內容確保是json格式的,不然解析出錯會拋異常
r.raise_for_status() ? ? ? ? ? ? #失敗請求(非200響應)拋出異常
帶參數的GET請求:
如果想查詢http://httpbin.org/get頁面的具體參數,需要在url里面加上,例如我想看有沒有Host=httpbin.org這條數據,url形式應該是http://httpbin.org/get?Host=httpbin.org
下面提交的數據是往這個地址傳送data里面的數據。
import requestsurl = 'http://httpbin.org/get' data = {'name':'zhangsan','age':'25' } response = requests.get(url,params=data) print(response.url) print(response.text)#URL傳遞參數 payload = {'keyword': '香港', 'salecityid': '2'} r = requests.get("http://m.ctrip.com/webapp/tourvisa/visa_list", params=payload) print(r.url) #示例為http://m.ctrip.com/webapp/tourvisa/visa_list?salecityid=2&keyword=香港POST請求
# 1、基本POST實例import requestspayload = {'key1': 'value1', 'key2': 'value2'} ret = requests.post("http://httpbin.org/post", data=payload)print(ret.text)# 2、發送請求頭和數據實例import requests import jsonurl = 'https://api.github.com/some/endpoint' payload = {'some': 'data'} headers = {'content-type': 'application/json'}ret = requests.post(url, data=json.dumps(payload), headers=headers)print(ret.text) print(ret.cookies)?
https://cuiqingcai.com/2556.html
https://www.cnblogs.com/lei0213/p/6957508.html
https://www.cnblogs.com/lei0213/p/6957508.html
總結
以上是生活随笔為你收集整理的Python 爬虫利器一之 Requests 库的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL18常用算法
- 下一篇: python docker_Docker