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

您的位置:首頁技術(shù)文章
文章詳情頁

python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))

瀏覽:83日期:2022-06-26 13:17:54

urllib是Python3中內(nèi)置的HTTP請(qǐng)求庫,不需要單獨(dú)安裝,官方文檔鏈接如下:https://docs.python.org/3/library/urllib.html從官方文檔可以看出,urllib包含4個(gè)模塊,如圖所示。

python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))

這4個(gè)模塊的功能描述如下:

request:最基本的HTTP請(qǐng)求模塊,可以用來發(fā)送HTTP請(qǐng)求,并接收服務(wù)端的響應(yīng)數(shù)據(jù)。這個(gè)過程就像在瀏覽器地址欄輸入U(xiǎn)RL,然后按Enter鍵一樣。 error:異常處理模塊,如果出現(xiàn)請(qǐng)求錯(cuò)誤,我們可以捕獲這些異常,然后根據(jù)實(shí)際情況,或者進(jìn)行重試,或者直接忽略,或進(jìn)行其他操作。 parse:工具模塊,提供了很多處理URL的API,如拆分、解析、合并等。 robotparser:主要用來識(shí)別網(wǎng)站的robots.txt文件,然后判斷哪些網(wǎng)站可以抓取,哪些網(wǎng)站不可以抓取。

本文主要介紹如何通過urllib發(fā)送HTTP GET請(qǐng)求和HTTP POST請(qǐng)求,并獲取相應(yīng)數(shù)據(jù)。

1. 用urlopen函數(shù)發(fā)送HTTP GET請(qǐng)求

urllib最基本的一個(gè)功能就是向服務(wù)端發(fā)送HTTP請(qǐng)求,然后接收服務(wù)端返回的響應(yīng)數(shù)據(jù)。這個(gè)功能只需要通過urlopen函數(shù)就可以搞定。例如,下面的代碼向百度發(fā)送HTTP GET請(qǐng)求,然后輸出服務(wù)端的響應(yīng)結(jié)果。

import urllib.request response=urllib.request.urlopen(’https://baidu.com’) # 將服務(wù)端的響應(yīng)數(shù)據(jù)用utf-8解碼 print(response.read().decode(’utf-8’))

運(yùn)行結(jié)果如圖 所示。

python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))

我們可以看到,使用urllib與服務(wù)端交互是非常容易的,除了import語句外,真正與業(yè)務(wù)有關(guān)的代碼只有2行,就完成了整個(gè)與服務(wù)端交互的過程。其實(shí)這個(gè)過程已經(jīng)完成了爬蟲的第一步,就是從服務(wù)端獲取HTML代碼,然后就可以利用各種分析庫對(duì)HTML代碼進(jìn)行解析,提取出我們感興趣的URL、文本、圖像等。其實(shí)urlopen函數(shù)返回的是一個(gè)對(duì)象,而read是這個(gè)對(duì)象的一個(gè)方法,可以利用type方法輸出這個(gè)對(duì)象的類型,當(dāng)我們知道了對(duì)象類型后,就可以很容易知道這個(gè)對(duì)象中有哪些API,然后調(diào)用它們。

import urllib.request response=urllib.request.urlopen(’https://baidu.com’) print(type(response))

這段代碼會(huì)輸出如下的結(jié)果:

<class ’http.client.HTTPResponse’>

現(xiàn)在我們了解到,urlopen函數(shù)返回的是HTTPResponse類型的對(duì)象,主要包含read、getheader、getheaders等方法,以及msg、version、status、debuglevel、closed等屬性。下面是一個(gè)實(shí)際的案例,用來演示了HTTPResponse對(duì)象中主要的方法和屬性的用法。

import urllib.request # 向京東商城發(fā)送HTTP GET請(qǐng)求,urlopen函數(shù)即可以使用http,也可以使用https response=urllib.request.urlopen(’https://www.jd.com’) # 輸出urlopen函數(shù)返回值的數(shù)據(jù)類型 print(’response的類型:’,type(response)) # 輸出響應(yīng)狀態(tài)碼、響應(yīng)消息和HTTP版本 print(’status:’,response.status,’ msg:’,response.msg,’ version:’, response.version) # 輸出所有的響應(yīng)頭信息 print(’headers:’,response.getheaders()) # 輸出名為Content-Type的響應(yīng)頭信息 print(’headers.Content-Type’,response.getheader(’Content-Type’)) # 輸出京東商城首頁所有的HTML代碼(經(jīng)過utf-8解碼) print(response.read().decode(’utf-8’))

運(yùn)行結(jié)果如圖所示。

python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))

2. 用urlopen函數(shù)發(fā)送HTTP POST請(qǐng)求

urlopen函數(shù)默認(rèn)情況下發(fā)送的是HTTP GET請(qǐng)求,如果要發(fā)送HTTP POST請(qǐng)求,需要使用data命名參數(shù),該參數(shù)是bytes類型,需要用bytes類將字符串形式的數(shù)據(jù)轉(zhuǎn)換為bytes類型。下面的例子

下面的例子向http://httpbin.org/post發(fā)送HTTP POST請(qǐng)求,并輸出返回結(jié)果。

import urllib.request # 將表單數(shù)據(jù)轉(zhuǎn)換為bytes類型,用utf-8編碼 data=bytes(urllib.parse.urlencode({’name’:’Bill’,’age’:30}),encoding=’utf-8’) # 提交HTTP POST請(qǐng)求 response=urllib.request.urlopen(’http://httpbin.org/post’,data=data) # 輸出響應(yīng)數(shù)據(jù) print(response.read().decode(’utf-8’))

這段代碼中一開始提供了一個(gè)字典形式的表單數(shù)據(jù),然后使用urlencode方法將字典類型的表單轉(zhuǎn)換為字符串形式的表單,接下來將字符串形式的表單按utf-8編碼轉(zhuǎn)換為bytes類型,這就是要傳給urlopen函數(shù)的data命名參數(shù)的值,要注意,一旦指定了data命名參數(shù),urlopen函數(shù)就會(huì)向服務(wù)端提交HTTP POST請(qǐng)求,這里并不需要顯式指定要提交的是POST請(qǐng)求。

本例將HTTP POST請(qǐng)求提交給了http://httpbin.org/post,這是一個(gè)用于測(cè)試HTTP POST請(qǐng)求的網(wǎng)址,如果請(qǐng)求成功,服務(wù)端會(huì)將HTTP POST請(qǐng)求信息原封不動(dòng)地返回給客戶端。運(yùn)行結(jié)果如圖所示。

python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))

以上就是python 如何用urllib與服務(wù)端交互(發(fā)送和接收數(shù)據(jù))的詳細(xì)內(nèi)容,更多關(guān)于python 用urllib與服務(wù)端交互的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产不卡人人| 久久一区亚洲| 精品亚洲二区| 欧美日韩午夜| 国产亚洲观看| 国产精品久久久久久妇女 | 精品丝袜在线| jizzjizz中国精品麻豆| 国产精品国产一区| 日韩国产欧美| 新版的欧美在线视频| 国产videos久久| 欧美三级精品| 女主播福利一区| 亚洲一区成人| 天堂精品久久久久| 清纯唯美亚洲综合一区| 日韩三级精品| 日本强好片久久久久久aaa| 国产乱人伦精品一区| 日韩伦理一区| 91精品一区二区三区综合在线爱 | 精品中文字幕一区二区三区四区| 国产精品最新| 成年男女免费视频网站不卡| 欧美精品高清| 国产一区日韩一区| 亚洲欧美日韩国产一区| 日韩中文字幕亚洲一区二区va在线| 首页欧美精品中文字幕| 亚洲精品高潮| 国产精品久久久久毛片大屁完整版| 精品伊人久久久| 久久青草久久| 中文国产一区| 婷婷亚洲精品| 国产精品网站在线看| 福利一区和二区| 亚洲成人不卡| 夜夜精品视频| 欧美一区在线观看视频| 国产欧美另类| 国产精品麻豆久久| 亚洲韩日在线| 亚洲精品亚洲人成在线观看| 欧美专区一区| 在线中文字幕播放| 在线国产一区二区| 日本一不卡视频| 久久久国产精品网站| 久久久久久久久丰满| 手机精品视频在线观看| 国产精品天天看天天狠| 国内精品亚洲| 不卡中文一二三区| 日韩av一区二| 日韩不卡在线| 日本一区中文字幕| 91欧美在线| 亚洲在线电影| 国产精品视频一区视频二区| 新版的欧美在线视频| 视频一区二区三区中文字幕| 国产乱码精品一区二区亚洲| 日韩理论片av| 亚洲人成高清| 人在线成免费视频| 一本一道久久a久久| 国产精品夜夜夜| 亚洲性色视频| 国产麻豆精品| 欧美精品一二| 国产精品一区二区av日韩在线| 999国产精品999久久久久久| 亚洲毛片在线免费| 日本久久精品| 亚洲精品视频一二三区| 在线精品亚洲欧美日韩国产| 亚洲日韩中文字幕一区| av免费不卡国产观看| 中文字幕视频精品一区二区三区| 欧美激情视频一区二区三区在线播放| 美女久久久久| 国产精品视频首页| 自拍日韩欧美| 国产一区二区视频在线看| 羞羞答答国产精品www一本| 久久亚洲精精品中文字幕| 一级欧洲+日本+国产| 精品三级av在线导航| 首页国产欧美日韩丝袜| 亚洲精品成人图区| 欧美一区在线观看视频| 99视频+国产日韩欧美| 福利视频一区| 国产一区 二区| 亚州av乱码久久精品蜜桃| 麻豆一区二区三| 亚洲专区在线| 蜜桃视频在线网站| 国产精品超碰| 美国三级日本三级久久99 | 日韩一区二区中文| 欧美综合精品| 人人精品人人爱| 久久视频精品| 激情黄产视频在线免费观看| 69精品国产久热在线观看| 国产农村妇女精品一二区| 日本久久成人网| 欧美成人aaa| 亚洲一区av| 在线一区电影| 99精品小视频| 日韩成人a**站| 国产精品一区二区三区av| 午夜性色一区二区三区免费视频| 亚洲福利精品| 精精国产xxxx视频在线播放 | 国产日韩欧美一区| 亚洲ab电影| 日韩中文字幕不卡| 日韩视频在线一区二区三区 | 国产伦久视频在线观看| 欧美日本久久| 日韩福利视频导航| 蜜桃av一区二区在线观看| 亚洲精品1区| 欧美精品一区二区久久| 色婷婷精品视频| 97精品国产| 毛片在线网站| 日韩免费小视频| 日韩在线第七页| 久久久男人天堂| 日韩欧美一区二区三区免费看| 美女av一区| 久久精品国产免费| 麻豆精品新av中文字幕| 精品免费av| 精品国产18久久久久久二百| 国内在线观看一区二区三区| 精品视频97| 午夜久久中文| 久久精品国产大片免费观看| 欧美日韩在线播放视频| 1024精品一区二区三区| 欧美日韩视频| 亚洲在线网站| 色8久久久久| 欧美亚洲国产日韩| 国产精品jk白丝蜜臀av小说| 91福利精品在线观看| 国产伦理一区| 国产精品久久久久久久久妇女| 欧美一级鲁丝片| 天堂资源在线亚洲| 久久av一区| 亚洲精品一二三**| 日本精品在线播放| 久久不见久久见免费视频7| 久久久国产精品网站| 欧美黄色网页| 亚洲资源av| 欧美三级第一页| 粉嫩av一区二区三区四区五区| 天堂√中文最新版在线| 精精国产xxxx视频在线野外| 91超碰国产精品| 亚洲精品伦理| 国产无遮挡裸体免费久久| 欧美黄色精品| 婷婷成人综合| 在线免费观看亚洲| 欧美黑人做爰爽爽爽| 亚洲啊v在线| 久久国产成人| 国产精品久久久久久久久久妞妞 | 超碰超碰人人人人精品| 日韩免费视频| 亚洲一区网站| 国产美女视频一区二区| 91精品韩国| 亚洲精品在线二区| 久久99高清| 黄色成人在线网址| 日韩av不卡在线观看| 欧美sm一区| 一区二区不卡| 精品国产不卡| 亚洲精品午夜av福利久久蜜桃| 日韩av一二三| 日韩在线观看不卡| 日本色综合中文字幕| 天堂av在线| 亚洲精一区二区三区| 国产一区二区三区视频在线| 中文亚洲免费| 老司机免费视频一区二区| 欧美精品一线|