Requests
- HTTP for Humans,更簡潔更友好
- 繼承了urllib的所有特征
- 底層使用的是urllib3
- 開源位址: 開源位址
- 中文文檔: 中文文檔
- 安裝: conda install requests
- get請求
- requests.get(url)
- requests.request(“get”, url)
- 可以帶有headers和parmas參數
import requests
url = "http://www.baidu.com"
# 兩種請求方式
# 使用get請求
rsp = requests.get(url)
print(rsp.text)
# 使用request請求
rsp = requests.request("get", url)
print(rsp.text)
'''
使用參數headers和params
研究傳回結果
'''
import requests
# 完整通路url是下面url加上參數構成
url = "http://www.baidu.com/s?"
kw = {
"wd": "王八蛋"
}
headers = {
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36"
}
rsp = requests.get(url, params=kw, headers=headers )
print(rsp.text) # 傳回首頁html
print(rsp.content) # 傳回bytes流
print(rsp.url) # 傳回請求網址,編碼後的
print(rsp.encoding) # 傳回編碼方式
print(rsp.status_code) # 請求傳回碼
- post
- rsp = requests.post(url, data=data)
- date, headers要求dict類型
- proxy
proxies = {
"http":"address of proxy",
"https": "address of proxy"
}
rsp = requests.request("get", "http:xxxxxx", proxies=proxies)
- 代理有可能報錯,如果使用人數多,考慮安全問題,可能會被強行關閉
- 使用者驗證
- web用戶端驗證
- cookie
- session
- 跟伺服器端session不是一個東東
- 模拟一次會話,從用戶端浏覽器連結伺服器開始,到用戶端浏覽器斷開
- 能讓我們跨請求時保持某些參數,比如在同一個session執行個體發出的 所有請求之間保持cookie
# 建立session對象,可以保持cookie值
ss = requests.session()
headers = {"User-Agetn":"xxxxxxxxxxxxxxxxxx"}
data = {"name":"xxxxxxxxxxx"}
# 此時,由建立的session管理請求,負責送出請求,
ss.post("http://www.baidu.com", data=data, headers=headers)
rsp = ss.get("xxxxxxxxxxxx")
- https請求驗證ssl證書