requests发送http请求
requests發(fā)送http請(qǐng)求
發(fā)送請(qǐng)求:(數(shù)據(jù)獲取、亂碼解決)
import requests
response = requests.get('http://www.baidu.com') # get post head ...
可以debug運(yùn)行,可以查看response的響應(yīng)內(nèi)容。請(qǐng)求返回的值是一個(gè)對(duì)象,是對(duì)HTTP協(xié)議中服務(wù)端返回給客戶端的數(shù)據(jù)封裝。
注意后邊的view是可以點(diǎn)擊預(yù)覽的。
取響應(yīng)對(duì)象的headers:
運(yùn)行結(jié)果:(部分代碼)
response.content返回字節(jié)串(原始數(shù)據(jù):圖片、音頻、視頻一般用它)
response.text 適用于文本數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)碼的
response.encoding? ? 可能返回 ISO-8859-1? ; 這個(gè)時(shí)候要注意編碼方式,代碼默認(rèn)獲取headers里的content-type,
如果里面沒(méi)有或沒(méi)有charset就返回ISO-8859-1 。我們可以從文本數(shù)據(jù)里獲取,也可以encode().decode()的方
式取解碼。或者直接對(duì)response.content解碼:response.content.decode(),文本的亂碼就解決了。
get方法里的參數(shù)parms: 對(duì)url進(jìn)行傳參(一個(gè)拼接),適用于爬取某些網(wǎng)頁(yè)的鏈接,這些鏈接只有當(dāng)前網(wǎng)頁(yè)的
后半段。
get、post等最后都會(huì)調(diào)用:
?
查詢參數(shù):
在返回的console里可以直接搜索你要查找的內(nèi)容:CTRL+F
?超時(shí)設(shè)置:
timeout參數(shù):timeout = 3? ? 一般這個(gè)參數(shù)都是需要設(shè)置的。
cookies:
cookies的問(wèn)題可以傳入cookies;也可以調(diào)用session()方法
cook = response.cookies, 再將cook傳給參數(shù)cookies
req = requests.session()
解決HTTP的無(wú)狀態(tài):
req = requests.session()? # 構(gòu)建一個(gè)會(huì)話,Session()和session()大小寫(xiě)一樣
用req去發(fā)送請(qǐng)求,自動(dòng)將需要的參數(shù)傳入。
?ssl認(rèn)證:
verify參數(shù)設(shè)置為False,表示步驗(yàn)證證書(shū),會(huì)給出警告,不會(huì)報(bào)錯(cuò)!默認(rèn)是?verify=None
?跳轉(zhuǎn):
allow_redirects參數(shù)默認(rèn)為None,設(shè)置為False,請(qǐng)求就不會(huì)跳轉(zhuǎn),在headers里的location我們可以
找到跳轉(zhuǎn)的網(wǎng)址。
?代理設(shè)置:
proxies = {
http': 'http://10.30. .....',
'https': 'http://10.30 ......',
}
將proxies傳給參數(shù)proxies。
?
轉(zhuǎn)載于:https://www.cnblogs.com/dan-baishucaizi/p/8521276.html
總結(jié)
以上是生活随笔為你收集整理的requests发送http请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hdu1010(小狗逃迷宫)
- 下一篇: Color色彩