目錄
響應
resp.status_code 狀態碼
resp.url 請求url
resp.encoding 查看響應頭部字符編碼
resp.headers 頭信息
resp.cookies cookie信息
resp.text 文本形式的響應內容
resp.content 字節形式的響應內容,圖片等
resp.json() JSON形式的響應內容
import requests
resp = requests.get('http://www.baidu.com')
print(resp.status_code)
print(resp.url)
print(resp.encoding)
print(resp.headers)
print(resp.cookies)
print(resp.text)
print(resp.content)
響應出現亂碼
import requests
url = 'http://www.weather.com.cn/data/sk/101020100.html'
resp = requests.get(url)
# 返回結果數據正常顯示,瀏覽器解析亂碼,是因爲服務器沒有設置返回數據的編碼格式,而瀏覽器默認解碼ISO-8859-1
print(resp.json())
print('❀。。。。。。。。。。。')
# ★ 解決辦法1
print(resp.content.decode(encoding='utf-8'))
print('❀。。。。。。。。。。。')
# ★ 解決辦法2
resp.encoding = 'utf-8'
print(resp.json())
請求
get請求_無參數
import requests resp = requests.get('http://www.baidu.com') # 解決中文亂碼問題,decode解碼 print(resp.content.decode(encoding='utf-8'))
get請求_有參數
import requests # 3種方式訪問百度搜索,params的值爲一個字符串或字典 resp = requests.get('http://www.baidu.com/S?wd=嗯哼') resp1 = requests.get('http://www.baidu.com/S', params="wd=楊冪") resp2 = requests.get('http://www.baidu.com/S', params={"wd": "秋刀魚"}) print(resp.text)
post請求
請求數據_表單
import requests # 獲取驗證碼 resp_get_verify_code = requests.get('http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.7023819204519448') print(resp_get_verify_code.cookies) # 登錄 resp = requests.post('http://localhost/index.php?m=Home&c=User&a=do_login', data={"username": "18682971383", "password": "123321", "verify_code": "8888"}) print('tpshop登錄接口返回數據:', resp.json())
請求數據_json
import requests resp = requests.post('http://182.92.81.159/api/sys/login', json={ "mobile": "13800000002", "password": "123456" } ) print('IHRM登錄接口返回數據:', resp.json())
設置請求頭
import requests
headers = {"Content-Type":"application/json"}
resp = requests.post('http://182.92.81.159/api/sys/login', json={
"mobile": "13800000002",
"password": "123456"
}, headers=headers
)
print(resp.json())
session
"""
session對象代表一次用戶會話:
從客戶端瀏覽器連接服務器開始,到客戶端瀏覽器與服務器斷開會話能讓我們在跨請求時候保持某些參數
比如在同一個 session 實例發出的所有請求之間保持cookie
"""
import requests
session = requests.Session()
resp_verify = session.get('http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.8333015742274967')
resp_login = session.post('http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.5339500519807754',
data={"username": "18682971383", "password": "123321", "verify_code": "8888"}
)
resp_order = session.get('http://127.0.0.1/Home/Order/order_list.html')
print(resp_verify.content)
print(resp_login.json())
print(resp_order.text)
cookie
# 不是很安全,但卻很實用,竊取令牌
import requests
# 獲取驗證碼,登錄,點擊我的訂單
resp_verify = requests.get('http://127.0.0.1/index.php?m=Home&c=User&a=verify&r=0.8333015742274967')
cookies = resp_verify.cookies
print(cookies)
resp_login = requests.post('http://127.0.0.1/index.php?m=Home&c=User&a=do_login&t=0.5339500519807754',
data={"username": "18682971383", "password": "123321", "verify_code": "8888"},
cookies=cookies)
resp_order = requests.get('http://127.0.0.1/Home/Order/order_list.html', cookies=cookies)
print(resp_verify.content)
print(resp_login.json())
print(resp_order.text)