引入Requests庫(kù)
import requests
# 發(fā)起GET請(qǐng)求
r = requests.get('https://www.baidu.com/')
# 查看響應(yīng)類型 requests.models.Response
print(type(r))
# 輸出狀態(tài)碼 200
print(r.status_code)
# 輸出響應(yīng)內(nèi)容類型 str
print(type(r.text))
# 輸出響應(yīng)內(nèi)容
print(r.text)
# 輸出cookies
print(r.cookies)
GET
import requests
url = “http://httpbin.org/get”
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
}
# GET請(qǐng)求參數(shù)
param = {'name': 'ide', 'city': 'New York'}
# 傳遞參數(shù)params
response = requests.get(url,params=param,headers=headers)
print(response.text)
POST
import requests
url=“http://httpbin.org/post”
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
}
# POST請(qǐng)求參數(shù)
data = {'name': 'ide', 'city': 'New York'}
# 傳遞參數(shù)params
response = requests.post(url,data=data,headers=headers)
print(response.text
文件上傳
# https://httpbin.org/post是一個(gè)測(cè)試接口,
# 請(qǐng)求有什么參數(shù),會(huì)給你返回什么參數(shù)
url = 'https://httpbin.org/post'
files = {
'file':open('hengyan.html','r')
}
#上傳文件
response = requests.post(url=url,files=files,headers=headers)
print(response.text)
認(rèn)證
import requests
#
auth=('test', '123456')
#
response = requests.get(
'http://192.168.199.107',
auth = auth
)
print (response.text)
設(shè)置代理
# 公開(kāi)代理、私密代理、獨(dú)享代理
proxies = {
'http':'192.168.1.1:8000',
'https':'192.168.1.1:8000',
}
response = requests.get(url=url,proxies=proxies,headers=headers)
設(shè)置cookies
# 1.直接將cookies放在請(qǐng)求頭中
# 2.將cookies放在requests.get()請(qǐng)求參數(shù)中
# 將瀏覽器中的cookies字符串轉(zhuǎn)為字典
cookies_str = """BAIDU_SSP_lcr=d216901100132ae1000000025d424708; Hm_lvt_7839b44f7a3c4b83b2e218c8d227dfad=1564624654; Hm_lpvt_7839b44f7a3c4b83b2e218c8d227dfad=1564707045"""
cookies_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookies_str.split('; ')}
print(cookies_dict)
response = requests.get(url=url,headers=headers,cookies=cookies_dict)
session會(huì)話維持
# 一般情況下用戶模擬登錄成功后,需要獲取cookies信息,
# 然后使用cookies發(fā)起請(qǐng)求,維持登錄身份。
## 使用session來(lái)維持會(huì)話
#實(shí)例化一個(gè)session對(duì)象
session_obj = requests.Session()
#session_obj會(huì)存儲(chǔ)相關(guān)信息,來(lái)保持請(qǐng)求之間 的關(guān)系,屬于同一次會(huì)話
session_obj.get()
session_obj.post()
證書(shū)驗(yàn)證
# verify: CA證書(shū)認(rèn)證 Defaults to ``True``:默認(rèn)開(kāi)啟證書(shū)認(rèn)證
# verify=False:表示忽略證書(shū)認(rèn)證
requests.get(url=url,headers=headers,verify=False)