真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

urllib3怎么在python中使用-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)urllib3怎么在python中使用,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

陽(yáng)谷網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司從2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

Urllib3是一個(gè)功能強(qiáng)大,條理清晰,用于HTTP客戶(hù)端的Python庫(kù)。許多Python的原生系統(tǒng)已經(jīng)開(kāi)始使用urllib3。Urllib3提供了很多python標(biāo)準(zhǔn)庫(kù)urllib里所沒(méi)有的重要特性:

  1. 線(xiàn)程安全

  2. 連接池

  3. 客戶(hù)端SSL/TLS驗(yàn)證

  4. 文件分部編碼上傳

  5. 協(xié)助處理重復(fù)請(qǐng)求和HTTP重定位

  6. 支持壓縮編碼

  7. 支持HTTP和SOCKS代理

一、get請(qǐng)求

urllib3主要使用連接池進(jìn)行網(wǎng)絡(luò)請(qǐng)求的訪(fǎng)問(wèn),所以訪(fǎng)問(wèn)之前我們需要?jiǎng)?chuàng)建一個(gè)連接池對(duì)象,如下所示:

import urllib3

url = "http://httpbin.org"
http = urllib3.PoolManager();
r = http.request('GET',url+"/get")
print(r.data.decode())
print(r.status)

帶參數(shù)的get
r = http.request('get','http://www.baidu.com/s',fields={'wd':'周杰倫'})
print(r.data.decode())

經(jīng)查看源碼:

def request(self, method, url, fields=None, headers=None, **urlopen_kw):
  • 第一個(gè)參數(shù)method 必選,指定是什么請(qǐng)求,'get'、'GET'、'POST'、'post'、'PUT'、'DELETE'等,不區(qū)分大小寫(xiě)。

  • 第二個(gè)參數(shù)url,必選

  • 第三個(gè)參數(shù)fields,請(qǐng)求的參數(shù),可選

  • 第四個(gè)參數(shù)headers 可選

request請(qǐng)求的返回值是

我們可以通過(guò)dir()查看其所有的屬性和方法。

dir(r)

直截取了一部分

#'data', 'decode_content', 'enforce_content_length', 'fileno', 'flush', 'from_httplib',
# 'get_redirect_location', 'getheader', 'getheaders', 'headers', 'info', 'isatty',
# 'length_remaining', 'read', 'read_chunked', 'readable', 'readinto', 'readline',
# 'readlines', 'reason', 'release_conn', 'retries', 'seek', 'seekable', 'status',
# 'stream', 'strict', 'supports_chunked_reads', 'tell', 'truncate', 'version', 'writable',
# 'writelines']

二、post請(qǐng)求

import urllib3
url = "http://httpbin.org"
fields = {
  'name':'xfy'
}
http = urllib3.PoolManager()
r = http.request('post',url+"/post",fields=fields)
print(r.data.decode())

可以看到很簡(jiǎn)單,只是第一個(gè)參數(shù)get換成了post。

并且參數(shù)不需要再像urllib一樣轉(zhuǎn)換成byte型了。

三、設(shè)置headers

import urllib3
headers = {
   'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
}
http = urllib3.PoolManager();
r = http.request('get',url+"/get",headers = headers)
print(r.data.decode())

四、設(shè)置代理

import urllib3
url = "http://httpbin.org"
headers = {
   'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
}
proxy = urllib3.ProxyManager('http://101.236.19.165:8866',headers = headers)
r = proxy.request('get',url+"/ip")
print(r.data.decode())

五、當(dāng)請(qǐng)求的參數(shù)為json

在發(fā)起請(qǐng)求時(shí),可以通過(guò)定義body 參數(shù)并定義headers的Content-Type參數(shù)來(lái)發(fā)送一個(gè)已經(jīng)過(guò)編譯的JSON數(shù)據(jù)

import urllib3
url = "http://httpbin.org"
import json
data = {'name':'徐繁韻'}

json_data = json.dumps(data)

http = urllib3.PoolManager()
r = http.request('post',url+"/post",body = json_data,headers = {'Content-Type':'application/json'})
print(r.data.decode('unicode_escape'))

六、上傳文件

#元組形式
with open('a.html','rb') as f:
  data = f.read()
http = urllib3.PoolManager()
r = http.request('post','http://httpbin.org/post',fields = {'filefield':('a.html',data,'text/plain')})
print(r.data.decode())

#二進(jìn)制形式

r = http.request('post','http://httpbin.org/post',body = data,headers={'Content-Type':'image/jpeg'})
print(r.data.decode())

七、超時(shí)設(shè)置

# 1全局設(shè)置超時(shí)
# http = urllib3.PoolManager(timeout = 3)
# 2在request里設(shè)置
# http.request('post','http://httpbin.org/post',timeout = 3)

八、重試和重定向

import urllib3
http = urllib3.PoolManager()
#重試
r = http.request('post','http://httpbin.org/post',retries = 5) #請(qǐng)求重試測(cè)次數(shù)為5次 ,默認(rèn)為3ci
print(r.retries) #Retry(total=5, connect=None, read=None, redirect=0, status=None)
#關(guān)閉重試
http.request('post','http://httpbin.org/post',retries = False) #請(qǐng)求重試測(cè)次數(shù)為5次 ,默認(rèn)為3ci

r = http.request('get','http://httpbin.org/redirect/1',redirect = False)
print(r.retries)# Retry(total=3, connect=None, read=None, redirect=None, status=None)
print(r.status)
print(r.data.decode())
print("--------------------")
print(r.get_redirect_location())
#302不是異常

九、urllib3 本身設(shè)置了https的處理,但是有警告

雖然可以請(qǐng)求,但是報(bào)如下警告:

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)

禁用警告:

import urllib3
urllib3.disable_warnings() #禁用各種警告
url = "https://www.12306.cn/mormhweb/"
http = urllib3.PoolManager()
r = http.request('get',url)
print(r.data.decode())

上述就是小編為大家分享的urllib3怎么在python中使用了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)頁(yè)名稱(chēng):urllib3怎么在python中使用-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://weahome.cn/article/desjcj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部