电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

python 如何用urllib與服務端交互(發送和接收數據)

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

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

python 如何用urllib與服務端交互(發送和接收數據)

這4個模塊的功能描述如下:

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

本文主要介紹如何通過urllib發送HTTP GET請求和HTTP POST請求,并獲取相應數據。

1. 用urlopen函數發送HTTP GET請求

urllib最基本的一個功能就是向服務端發送HTTP請求,然后接收服務端返回的響應數據。這個功能只需要通過urlopen函數就可以搞定。例如,下面的代碼向百度發送HTTP GET請求,然后輸出服務端的響應結果。

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

運行結果如圖 所示。

python 如何用urllib與服務端交互(發送和接收數據)

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

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

這段代碼會輸出如下的結果:

<class ’http.client.HTTPResponse’>

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

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

運行結果如圖所示。

python 如何用urllib與服務端交互(發送和接收數據)

2. 用urlopen函數發送HTTP POST請求

urlopen函數默認情況下發送的是HTTP GET請求,如果要發送HTTP POST請求,需要使用data命名參數,該參數是bytes類型,需要用bytes類將字符串形式的數據轉換為bytes類型。下面的例子

下面的例子向http://httpbin.org/post發送HTTP POST請求,并輸出返回結果。

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

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

本例將HTTP POST請求提交給了http://httpbin.org/post,這是一個用于測試HTTP POST請求的網址,如果請求成功,服務端會將HTTP POST請求信息原封不動地返回給客戶端。運行結果如圖所示。

python 如何用urllib與服務端交互(發送和接收數據)

以上就是python 如何用urllib與服務端交互(發送和接收數據)的詳細內容,更多關于python 用urllib與服務端交互的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 中控室大屏幕-上海亿基自动化控制系统工程有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 菏泽知彼网络科技有限公司| 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 成都中天自动化控制技术有限公司| 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 氟氨基酮、氯硝柳胺、2-氟苯甲酸、异香兰素-新晨化工 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 苏州教学设备-化工教学设备-环境工程教学模型|同科教仪 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 |