日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python urllib3軟件包的使用說明

瀏覽:34日期:2022-07-05 09:35:10

urllib3是一款Python 3的HTTP客戶端。

Python標準庫提供了urllib。在Python 2中,另外提供了urllib2;而在Python 3中,重構了urllib和urllib2到標準庫urllib,并另外提供了urllib3。

1. urllib3的特性

線程安全

連接緩沖池

客戶端SSL/TLS驗證

文件上傳

請求重試

HTTP重定向

支持gzip和deflate encoding

支持HTTP和SOCKS的代理

2. 安裝

urllib3不是Python 3的標準庫,要使用需要另外安裝,pip命令如下:

pip install urllib3

3. 用法

1) HTTP GET請求

>>> import urllib3>>> http = urllib3.PoolManager()>>> r = http.request(’GET’, ’http://httpbin.org/robots.txt’)>>> r.status200>>> r.data...>>> r.headers...

注意:任何HTTP請求,只有通過PoolManager對象發出,才能夠提供連接緩沖池和線程安全特性。

任何請求的返回對象都是HTTPResponse對象,其中包含status, data和headers三個屬性。

2) HTTP POST請求

>>> import urllib3>>> http = urllib3.PoolManager()>>> r = http.request(’POST’, ’http://httpbin.org/post’, fields={’hello’: ’Xiangbin’})>>> r.status200>>> r.data...>>> r.headers...

3) JSON響應的處理

>>> import urllib3>>> import json >>> http = urllib3.PoolManager()>>> r = http.request(’GET’, ’http://httpbin.org/ip’)>>> r.datab’{n 'origin': '10.23.1.37'n}n’>>> json.loads(r.data.decode(’utf-8’)){’origin’: ’127.0.0.1’}

注意:使用json的loads()方法

4) 流式響應的處理

>>> import urllib3>>> http = urllib3.PoolManager()>>> r = http.request(’GET’, ’http://httpbin.org/bytes/1024’, preload_content=False)>>> for chunk in r.stream(32):... print(chunk)...>>> r.release_conn()

注意:preload_content=False表示流式處理響應數據。

處理stream()方法讀取響應數據之外,還可以使用read()方法,示例如下:

>>> import urllib3>>> http = urllib3.PoolManager()>>> r = http.request(’GET’, ’http://httpbin.org/bytes/1024’, preload_content=False)>>> r.read(4)b’x88x1fx8bxe5’ >>> r.release_conn()

5) 請求帶參數

>>> r = http.request(’GET’, ’http://httpbin.org/headers’, fields={’hello’: ’Xiangbin’}, headers={’X-Something’: ’value’})

對于POST和PUT方法,需要將參數編碼后,這樣才可以追加到URL,示例如下:

>>> from urllib.parse import urlencode>>> encoded_args = urlencode({’arg’: ’value’})>>> url = ’http://httpbin.org/post?’ + encoded_args>>> r = http.request(’POST’, url)

當然,最好還是以fields參數形式,urllib3將自動編碼,示例如下:

>>> r = http.request(’POST’, ’http://httpbin.org/post’, fields={’hello’: ’Xiangbin’})

使用JSON模塊,還可以以body形式發送請求參數,示例如下:

>>> import json>>> data = {’Hello’: ’Xiangbin’}>>> encoded_data = json.dumps(data).encode(’utf-8’)>>> r = http.request(’POST’, ’http://httpbin.org/post’, body=encoded_data, headers={’Content-Type’: ’application/json’})>>> json.loads(r.data.decode(’utf-8’))[’json’]{’Hello’: ’Xiangbin’}

6) 上傳文件

文本文件

>>> with open(’example.txt’) as fp:... file_data = fp.read()>>> r = http.request(... ’POST’,... ’http://httpbin.org/post’,... fields={... ’filefield’: (’example.txt’, file_data, ’text/plain’),... })>>> json.loads(r.data.decode(’utf-8’))[’files’]{’filefield’: ’...’}

注意:上傳文件必須使用POST方法。

二進制文件

>>> with open(’example.jpg’, ’rb’) as fp:... binary_data = fp.read()>>> r = http.request(... ’POST’,... ’http://httpbin.org/post’,... body=binary_data,... headers={’Content-Type’: ’image/jpeg’})>>> json.loads(r.data.decode(’utf-8’))[’data’]b’...’

補充知識:Python的requests軟件包詳解

requests是一款Python的第三方HTTP類庫,便于進行HTTP訪問。

1. requests的特性

能夠發送HTTP 1.1請求

無需手工為GET方法設置URL的請求參數,無需手工為POST方法組編碼表單形式

借助于urllib3實現HTTP請求的連接會話緩存

支持Python 2.6, 2.7, 3.3-3.7

2. requests的安裝

requests不是Python標準庫,需要使用PIP安裝,命令如下:

pip install requests

安裝過程如下:

C:Samworks>pip install requestsCollecting requests Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB) 100% |????????????????????????????????| 61kB 17kB/sCollecting certifi>=2017.4.17 (from requests) Downloading https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl (154kB) 100% |????????????????????????????????| 163kB 18kB/sCollecting idna<2.9,>=2.5 (from requests) Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB) 100% |????????????????????????????????| 61kB 10kB/sCollecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests) Downloading https://files.pythonhosted.org/packages/e0/da/55f51ea951e1b7c63a579c09dd7db825bb730ec1fe9c0180fc77bfb31448/urllib3-1.25.6-py2.py3-none-any.whl (125kB) 100% |????????????????????????????????| 133kB 32kB/sCollecting chardet<3.1.0,>=3.0.2 (from requests) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) 100% |????????????????????????????????| 143kB 48kB/sInstalling collected packages: certifi, idna, urllib3, chardet, requestsSuccessfully installed certifi-2019.9.11 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.6You are using pip version 19.0.3, however version 19.3.1 is available.You should consider upgrading via the ’python -m pip install --upgrade pip’ command.

3. requests的接口

1) Main interfaces

requests.request()requests.head()requests.get(’url’, params={’key1’:’value1’, ’key2’:’value2’},headers={’user-agent’: ’...’}, cookies={’name1’:’value2’})requests.post(’url’, data={’key’:’value’})requests.post(’url’, json={’key’:’value’})requests.post(’url’, files={’uploaded_file’: open(’report.xls’, ’rb’)})requests.post(’url’, files={’uploaded_file’: (’report.xls’, open(’report.xls’, ’rb’), ’application/excel’, {’Expires’: ’0’})})requests.post(’url’, files={’uploaded_file’: (’temp.txt’, ’one linentwo linesn’)})requests.put(’url’, data={’key’:’value’})requests.patch()requests.delete(’url’)def getGithub(): github_url = ’https://api.github.com/user/repos’ myresponse = requests.get(github_url, auth=(’champagne’, ’myPassword’)) print(myresponse.json())def postGithub(): github_url = ’https://api.github.com/user/repos’ data = json.dumps({’name’:’python test’, ’description’:’a python test repo’}) myresponse = requests.post(github_url, data, auth=(’champagne’, ’myPassword’)) print(myresponse.text)

2) requests.Session類

import requests

requests.Session()

3) requests.Request類

import requests

requests.Request(’GET’, ’http://httpbin.org/get’)

4) requests.PreparedRequest類

import requestsreq = requests.Request(’GET’, ’http://httpbin.org/get’)preq = req.prepare()

5) requests.Response類

import requestsr = requests.get(’https://api.github.com/events’)r.headers[’content-type’] #’application/json;charset=utf8’r.urlr.status_code #200==requests.codes.okr.encoding #’utf-8’ by defaultr.raw #raw contentr.text #text contentr.content #binary contentr.json()#json content, recommendedr.cookies[’a_key’]

注意:調用json()方法,如果返回結果不是有效的JSON數據,則拋出ValueError異常。

6) requests.adapters.BaseAdapter類

7) requests.adapters.HTTPAdapter類

requests提供的使用urllib3的HTTP Adapter

以上這篇Python urllib3軟件包的使用說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩精品一区二区视频| 精品欧美日韩精品| 日本亚州欧洲精品不卡| 欧美亚洲在线日韩| 快播电影网址老女人久久| 亚洲精品成人图区| 国产精品亚洲欧美日韩一区在线 | 日韩中文字幕| 亚洲乱亚洲高清| 日韩精品中文字幕一区二区| 亚洲精品日本| 久久激情五月婷婷| 国产成人精品999在线观看| 亚洲四虎影院| 黄色日韩精品| 深夜福利亚洲| 美国三级日本三级久久99| 免费观看日韩电影| 日本欧美在线看| 日韩av一区二区三区四区| 国产精品巨作av| 国产精品成人一区二区不卡| 欧美激情另类| 日本一二区不卡| 亚洲夜间福利| 另类激情亚洲| 国产欧美日韩一区二区三区在线| 国产欧美一区二区三区国产幕精品| 精品国产一区二区三区av片| 米奇777超碰欧美日韩亚洲| 日韩一区二区中文| 蜜桃久久精品一区二区| 成人在线超碰| 精品一区免费| 国产91在线播放精品| 三级一区在线视频先锋| 91精品综合| 天堂√8在线中文| 给我免费播放日韩视频| 嫩草伊人久久精品少妇av杨幂| 日韩欧美中文字幕一区二区三区 | 久久久夜精品| 老鸭窝一区二区久久精品| 日韩1区2区日韩1区2区| 亚洲成人一区在线观看| 日本欧美不卡| 亚洲欧美网站| 国产伦精品一区二区三区千人斩| 麻豆mv在线观看| 免费久久精品视频| 国产一区二区三区久久| 在线看片日韩| 荡女精品导航| 亚洲精一区二区三区| 黄色aa久久| 丝袜a∨在线一区二区三区不卡| 国产欧美啪啪| 黑丝一区二区| 国产不卡精品| 91久久在线| 国产精品视频一区视频二区| 亚洲激情久久| 国产精品igao视频网网址不卡日韩| 在线精品亚洲欧美日韩国产| 亚洲麻豆一区| 久久婷婷久久| 久久精品亚洲| 日韩精品一区二区三区中文在线| 色婷婷综合网| 石原莉奈在线亚洲三区| 黑森林国产精品av| 日本在线成人| 亚洲精品一区二区妖精| 精品视频99| 欧美中文字幕| 91亚洲成人| 日本v片在线高清不卡在线观看| 欧美gv在线| 久久激情av| 蜜桃av一区二区在线观看| 亚洲精品永久免费视频| 欧美三区不卡| 免费看的黄色欧美网站| 国产日韩电影| 国产精品jk白丝蜜臀av小说| 丝瓜av网站精品一区二区| 国产91精品对白在线播放| 欧美激情视频一区二区三区在线播放| 久久亚洲不卡| 伊人久久在线| 国产精一区二区| 日韩精品社区| 亚洲自啪免费| 欧美精选一区二区三区| 中文字幕在线免费观看视频| 国产日韩欧美三区| 中文字幕亚洲在线观看| 亚洲精品成人| 欧美1级日本1级| 超碰成人av| 麻豆精品视频在线观看| 日本午夜免费一区二区| 99在线|亚洲一区二区| 99久久婷婷| 97精品国产一区二区三区| 国产精品高清一区二区| 天堂av一区| 日韩精品五月天| 蜜桃久久精品一区二区| 在线一区免费| 国产在线欧美| 视频福利一区| 日韩欧美不卡| 国产成人免费精品| 精品日韩一区| 麻豆高清免费国产一区| 国产欧美日韩| 国产精品99精品一区二区三区∴| 欧美日韩视频免费看| 免费久久99精品国产| 美女网站一区| 99精品视频在线观看免费播放| 色综合狠狠操| 特黄毛片在线观看| 福利欧美精品在线| 国产在线一区不卡| 久久久久久久欧美精品| 日韩精品水蜜桃| 99精品视频精品精品视频| 欧洲亚洲一区二区三区| 日韩免费久久| 日韩精品免费一区二区在线观看| 综合日韩av| 成人免费网站www网站高清| 久久久国产亚洲精品| 99视频精品全国免费| 久久亚洲成人| 首页欧美精品中文字幕| 蜜桃一区二区三区在线| 日韩国产欧美视频| 91精品日本| 欧美国产另类| 国产精品久久久网站| 欧美亚洲国产激情| 蜜臀av在线播放一区二区三区 | 国产精品午夜av| a日韩av网址| 99在线观看免费视频精品观看| 日韩中文av| 97精品97| 欧美一级久久| 91久久国产| 国产高清亚洲| 国产91在线播放精品| 婷婷精品久久久久久久久久不卡| 日本va欧美va欧美va精品| 亚洲欧洲专区| 国产欧美一区二区三区精品观看| 在线视频亚洲| 日韩国产在线一| 麻豆视频一区二区| 成人欧美一区二区三区的电影| 精品日韩视频| 亚洲中午字幕| 国产精品久久久网站| 中文字幕在线官网| 亚洲综合日本| 国产日韩欧美一区在线| 日韩精品永久网址| 日韩国产欧美在线播放| 欧美精品一区二区久久| 国产成人77亚洲精品www| 亚洲欧美久久久| 国产免费播放一区二区| 香蕉久久久久久久av网站| 欧美在线资源| 精品亚洲二区| 久久成人福利| 久久人人精品| 国产精品对白| 伊人久久大香线蕉av不卡| 亚洲精品乱码| 高清精品久久| 婷婷亚洲综合| 国产精一区二区| 蜜桃国内精品久久久久软件9| 日韩中文字幕在线一区| 日韩一区二区在线免费| 亚洲久久在线| 日韩久久精品| 日本高清久久| 999精品色在线播放| 日韩精品福利一区二区三区| 中文字幕一区久| 日韩精品免费视频人成| 在线一区av| 欧美在线日韩| 欧美日韩国产高清| 国产乱码精品| 丝袜国产日韩另类美女|