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

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

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

瀏覽:5日期: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 編程
相關文章:
主站蜘蛛池模板: 鑫铭东办公家具一站式定制采购-深圳办公家具厂家直销 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 开云(中国)Kaiyun·官方网站-登录入口 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 泰安塞纳春天装饰公司【网站】| 电销卡_稳定企业大语音卡-归属地可选-世纪通信| 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 恒温水槽与水浴锅-上海熙浩实业有限公司| 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 江西自考网| 鲸鱼视觉 -数字展厅多媒体互动展示制作公司 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 路面机械厂家| 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 密封无忧网 _ 专业的密封产品行业信息网 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | LINK FASHION 童装·青少年装展 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 咖啡加盟-咖啡店加盟-咖啡西餐厅加盟-塞纳左岸咖啡西餐厅官网 |