专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Requests模块简介安装

  Requests模块简介与安装
  在python的标准库中,随人提供了urllib,utllicb2,httplib,但是做接口测试,requests使用更加方便快捷,正如官方说的,让HTTP服务人类。
  Requests是用python语言基于urllib编写的,采用的是Apache2Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。
  Requests模块安装:
  安装方式一:
  执行pipinstalllUrequests联网安装requests
  安装方式二:
  进入https:pypi。orgprojectrequests
  下载并解压requests2。19。1。tar。gz,然后用cmd进入解压目录,使用命令Pythonsetup。pyinstall安装requests
  备注:在pycharm中使用的时候如果无法显示模块,必须通过pycharmfilesettingprojectinterpreter再安装导入一次。
  Requests模拟http请求
  1、模拟get请求
  importrequests
  responserequests。get(https:www。baidu。com)
  print(response。content。decode(utf8))
  上例发送无参数的get请求,response。content是二进制模式,可以下载视频之类的,如果想看的话需要decode成utf8格式。而response。text返回的是Unicode格式,通常需要转换为utf8格式,否则就是乱码。
  如果想用text方法并解决乱码维妮塔,可以通过如下代码实现:
  print(response。content。decode(utf8))
  print(response。text)
  2、模拟带参数的get请求
  importrequests
  写法一:
  responserequests。get(https:api。weixin。qq。comcgibintoken?granttypeclientcredentialappidwx6e80aecfffd74d44secret8e87c882c1076e95f675db64a77925bb)
  print(response。content。decode(utf8))
  写法二:
  data{granttype:clientcredential,appid:wx6e80aecfffd74d44,secret:8e87c882c1076e95f675db64a77925bb}
  responserequests。get(https:api。weixin。qq。comcgibintoken,paramsdata)
  print(response。content。decode(utf8))
  上面引用微信平台的接口为例,其中APPID和APPSECRET值获取的方式是:进入微信公众平台开发者文档:https:mp。weixin。qq。comwikihome进入开始开发接口测试号申请菜单,通过微信扫一扫生成测试号扫码后,生成appID和appsecret自定义请求头
  importrequests
  data{wd:requests接口测试}
  headerinfo{
  useragent:Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome104。0。0。0Safari537。36
  }
  responserequests。get(https:www。baidu。com,paramsdata,headersheaderinfo)
  print(response。content。decode(utf8))
  上述例子是百度进行查询的接口,在实际中需要添加UserAgent头部信息,否则请求返回的数据错误。
  Headersheaderinfo表示如果需要增加请求头,可以把dict类型的键值对传给headers参数即可。模拟post请求
  接口信息如下:
  接口功能:新建用户标签
  请求方式:POST
  接口地址:https:api。weixin。qq。comcgibintagscreate?accesstokenACCESSTOKEN
  上传数据格式:json数据{tag:{name:广东}}
  importrequests
  importjson
  urlhttps:api。weixin。qq。comcgibintagscreate
  info{tag:{name:广东11}}
  data{accesstoken:61r40JB6tNPhNori626wxl9RN27F6oiq0vLvg9Nzt4l1g2Vyr4Zk4ySzs5CoER8oxblbQFcpsGAiHX1zUPOJPEmE5QQq0NjHlVSlC8yUfkOS7pfk7OvZzL5xJq65HAPT12FtCZOzsQ19qDYTcADARMH}token值为之前获取accesstoken的值
  headers{ContentType:applicationjson}发送json数据必带的头部信息
  responserequests。post(url,paramsdata,datajson。dumps(info),headersheaders)
  print(response。content。decode(utf8))
  备注:json。dumps(),用于将dict类型的而数据转成json格式编码的字符串。
  通过上面的例子,可以知道,post请求的参数是通过data方式来传递的。Post的请求参数一般有from表单、json数据、文件等。用requests模块处理方式如下:
  from表单(使用dict类型传输):
  postResponserequests。post(url,data{key:value})
  json数据:
  方式一:(需要使用json模块)jsonParams{key:value}
  Headers{ContentType:applicationjson}
  postJsonResponserequests。post(url,headersheaders,datajson。dumps(jsonParams))
  方式二:jsonParams{key:value}
  headres{ContentType:applicationjson}
  postJsonResponserequests。post(url,headersheaders,jsonjsonParams)
  文件上传:
  简单处理:
  filepathC:UserskcadmiDesktopjuneyao。docx
  files{file:open(filepath,rb)}
  fileResponserequests。post(url,filesfiles)
  显式地设置文件名,文件类型和请求头;
  files{file:(report。xls,open(report。xls,rb),applicationvnd。msexcel,{Expires:0})}
  fileResponserequests。post(url,filesfiles)
  Requests官方帮助文档实例链接:
  http:httpbin。orgpost
  Requests模块获取响应内容
  响应包括响应行、响应头、响应正文内容,这些返回的响应信息都可以通过Requests模块获取。这些获取到的响应内容也是接口测试执行得到的实际结果。
  获取响应行:
  rrequests。get(https:www。baidu。com)
  print(r。statuscode)获取响应状态码
  print(r。reason)获取响应信息
  获取响应头
  print(r。headers)获取响应头,返回的是dict类型,可以继续使用get获取指定的值
  获取其它响应信息:
  print(r。url)获取请求地址
  print(r。cookies)获取cookies
  print(r。encoding)获取响应的编码格式
  依据不同响应正文内容的情况,Requests模块有四块不同的处理方式:
  响应内容:
  rrequests。get(https:www。baidu。com)
  print(r。text)
  Requests会自动解码来自服务器的内容。大多数unicode字符集都能被五逢地解码。请求发出后,Requests会基于HTTP头部对响应的编码作出有根据的推测。当你访问r。text之时,Requests会使用,其推测的文本编码。r。text使用后乱码的几率很大,可以先用r。encoding属性来改变编码,如下所示:
  rrequests。get(https:www。baidu。com)
  r。encodingutf8
  print(r。text)
  二进制响应内容:
  对于非文本请求,r。content能以字节的方式访问请求响应体。且Requests模块会自动为你解码gzip和deflate传输编码的响应数据。
  使用r。content处理普通的行营返回:
  rrequests。get(https:www。baidu。com)
  print(r。content。decode(utf8))
  使用r。content下载图片文件:
  fromPILimportImage
  fromioimportBytesIO
  rrequests。get(https:www。baidu。comimgbdlogo1。png)
  imgimage。open(BytesIO(r。content))
  img。save(test。png)
  JSON响应内容:
  Requests中有一个内置的JSON解释器r。json(),处理返回的JSON数据,使用后,会把返回的数据作为一个python中的json数据对象看待。如果JSON解释失败,r。json()就会抛出异常。
  举例:
  data{granttype:clientcredential,appid:wx8f5d6a0a65df03a2,secret:fbeaae831dbb54a981faf12d554a5352}
  responserequests。get(https:api。weixin。qq。comcgibintoken,paramsdata)
  jsondataresponse。json()
  print(jsondata〔accesstoken〕)普通键值对直接取值
  原始响应内容:(一般不使用)
  如果需要获取来自服务器的原始套接字响应,可以使用r。raw,如果确定要获取的话,还需要在初始请求中设置streamTrue。
  rrequests。get(https:www。baidu。com,streamTrue)
  print(r。raw。read(1))
  Requests模拟高级操作代理设置
  代理(英文:Proxy),也称网络代理,是一种特殊的网络服务,英文全称是(ProxyServer),其功能就是代理网络用户去获取网络信息。形象的说:它是网络信息的中转站。代理服务器就好像一个大的Cache,这样就能显著提高浏览器速度和效率。
  Requests模块设置代理的方式如下:
  普通代理:
  importrequests
  proxies{http:http:127。0。0。1:8888,https:https:127。0。0。1:8888}
  rrequests。get(https:www。taobao。com,proxiesproxies)
  print(r。content。decode(utf8))
  包含用户名和密码:
  importrequests
  proxies{http:http:user:password127。0。0。1:9743}
  responserequests。get(https:www。taobao。com,proxiesproxies)超时设置
  Requests模块可以设置接收数据的超时时间,超出设定的时间还没有数据返回,就抛出异常。超时设置有两种类型表达:float、tupleimportrequests
  response01requests。get(https:www。baidu。com,timeout0。0001)表示接收数据的超时时间
  response02requests。get(https:www。baidu。com,timeout(0。1,0。2))0。1代表链接超时,0。2表示接收数据的超时时间(单位是秒)
  接收数据的超时时间(单位是秒)
  如果远端服务器很慢,你可以让Request永远等待,传入一个None作为timeout值重定向设置
  在请求url时,服务器会自动把我们的请求重定向,可以使用r。history来查看重定向。如果不想进行自动重定向,可以用参数allowredirects关闭。
  rrequests。get(http:www。360buy。com)
  print(r。history)
  rrequests。get(http:www。360buy。com,allowredirectsFalse)session处理
  部分接口需要先登录网址,才能有权限进行调用,这时可以使用到session,具体操作时:先使用网址的登录api进行登录,得到session后,然后用该session来请求其它的接口。示例代码如下:
  srequests。Session()
  logindata{formemail:youremailexample。com,formpassword:yourpassword}
  s。post(http:pythontab。comtestLogin,logindata)
  rs。get(http:pythontab。comnotification)
  5、请求中携带cookies
  对于某些网站,登录然后从浏览器中获取cookies,以后就可以直接拿着cookie登录了,
  无需输入用户名密码。
  importrequests
  Cookies{usersession:value}
  responserequests。get(https:github。comsettingsemails,cookiesCookies)
  6、SSLCertVerification
  很多网站都是https,但是不用证书也可以访问,大多数情况都是可以携带也可以不携带证书如知乎、百度等是可带可不带担忧硬性要求的,则必须待,比如对于定向的用户,拿到证书后才有权限访问某个特定网站。
  举例:https:www。12306。cnimportrequests
  responserequests。get(https:www。12306。cn)如果是ssl请求,首先检车证书是否合法,不合法则报错
  responserequests。get(https:www。12306。cn,verifyFalse)不验证证书,报警告,返回200
  Pipinstallupgradeforcereinstall‘requests2。6。0’urlib3
  fromrequests。packageimporturlib3
  Urlib3。disablewarnings()关闭警告
  Responstrequests。get(‘https:www。12306。cn’,verifyFalse)
  加上证书:(最好的解决方案)
  Responserequests。get(‘https:wwww。12306。cn’,cert(‘pathserver。crt’,’pathkey’))异常处理
  遇到网络问题(如:DNS查询失败、拒绝链接等)时,Requests会抛出一个connectionError异常。如果HTTP请求返回不成功的状态码,Response。raiseforstatus()会排除一个HTTPError异常。
  若请求超时,则抛出一个Timeout异常。
  所有Requests显示抛出的异常都继承自requests。exceptions。RequestException。
  importrequests
  fromrequests。exceptionsimportReadTimeout,ConnectionError,RequestException
  try:
  responstrequests。get(http:httpbin。orgget,timeout0。5)
  print(responst。statuscode)
  exceptReadTimeout:
  print(Timeout)
  exceptConnectionError:
  print(connectionerror)
  exceptRequestException:
  print(Error)

有舍有得,千元档的好屏新选择,荣耀X40上手体验前几天华为MATE50系列和iPhone14系列争锋发布的时刻,因为担心影响流量和曝光,国内大多手机厂商噤声了,甚至在前面一段时间就没有新机发布了,但是却有一个厂商顶着被抢曝光量的这些国企年年亏损,国家还在不断输血?亏损20年都没倒闭?在去找工作的时候,为了让自己有一个更加稳定可靠的发展环境,很多人都会选择去大型的企业,尤其是国企或者央企。毕竟他们的背后有国家作为背景,是更有发展实力的。而事实上,有很多国企,即便KiWi将独立成品牌,宝骏高端化失败之后,开始走个性新能源路线?在2023款KiWiEV的发布会上曝光了一款全新车型,新车的造型设计与吉姆尼非常相似,方盒子造型,很是可爱。据悉,新车被定义为城市玩乐潮品。可见官方并没有把它定位成硬派越野,而是城想要手机用上五年不换,建议一步到位,目前这三款手机可以满足想要手机用上五年不换,建议一步到位,目前这三款手机可以满足。vivoX70Pro性能方面搭载的是骁龙888Plus芯片和增强版UFS3。1等旗舰硬件,安兔兔跑分达到了85万分以上,爆单变成了缺单,东南亚订单荒来得有点快从上半年铺天盖地的爆单报道,再到下半年的缺单传闻,东南亚的订单似乎跟股市行情一样跌宕起伏。目前实际订单情况如何?订单变动的原因是什么?对中国又有哪些影响?多位在东南亚国家从事外贸出爆单变成了缺单,东南亚订单荒来得有点快从上半年铺天盖地的爆单报道,再到下半年的缺单传闻,东南亚的订单似乎跟股市行情一样跌宕起伏。目前实际订单情况如何?订单变动的原因是什么?对中国又有哪些影响?多位在东南亚国家从事外贸出24岁的布克,24岁的科比,10项数据全面对比后,才发现科比被高估24岁的布克与24岁的科比全面对比上场时间,布克40。4min,科比43。8min场均得分,布克27。0分,科比26。6分场均篮板,布克6。4个,科比5。8个场均助攻,布克4。8个小米首款2亿像素旗舰!小米12TPro跑分出炉骁龙8实锤据此前消息,小米将在本月发布旗下首款2亿像素主摄手机小米12TPro。今天,有爆料者在Geekbench数据库中发现了疑似该机的信息,其中显示其将搭载骁龙8处理器。综合传闻来看,小新能源车着火终极十问我的车静静地停在车库里,怎么就自燃了?当下新能源汽车的市场正在快速扩张,但是其充电技术,续航里程等一直无法完善,近期,继上海车展维权女车主抗议特斯拉刹车失灵引发热议后,新能源车自燃起火等事故让其安全性成为广大用户的关注新能源汽车火了3年瓜子二手车全网首发3年保值率趋势榜单三年多来,国内新能源汽车日益火爆。随着新能源汽车的普及,越来越多的消费者也开始考虑选择二手新能源汽车。但目前市面上发布的新能源汽车保值率榜单均以1年车龄的为主,未涵盖二手车交易的主临商银行上半年净利大降43。62年内被罚超百万中国网财经9月21日讯(记者燕山蔺壮壮)近期,临商银行公布2022年半年度报告。报告显示,上半年临商银行延续2021年来增收不增利的态势。报告期内,该行营业收入同比增长18。76至
元宵佳节送领导客户礼物推荐,电商爆火电动牙刷寓意满满!元宵佳节送领导客户礼物推荐有什么比较好的选择呢?在这样一个特殊的节日里很多用户想要给领导客户挑上一份有意义充满诚意的礼物,但是却不知道怎么选?所以今天给大家推荐一份非常不错的礼物选程序式的拜年拜年,抢红包,晒朋友圈,一度是春节的标配,热度甚至超过春晚。近几年,这三大件也逐渐鸡肋了起来。拜年的微信,变得格式化了。花花绿绿的布局,华丽用词却寡淡无味的堆砌,满天的模板转发和群分享2022吃灰经历爆亏三万我帮你踩雷2022年已经过完了,相信大家买了不少东西,同时也花了不少冤枉钱。细数我2022年消费的产品,发现有一半都在吃灰,爆亏5万元。今天我向大家分享我的剁手经历,希望能帮助你避雷,少买没读创公司调研深天马A预计今年将具备折叠屏量产能力,并推出折叠产品深天马A(000050。SZ)近期接受机构调研时表示,公司在折叠手机方面有进行多方案技术储备,包括左右和上下内折外折三折等。公司将根据客户需求持续进行方案优化迭代,集成包括HTDM郭碧婷向佐合体!素颜连眉毛都不化,发际线高,被嘲婚后老得太快近日,有网友在迪士尼偶遇了郭碧婷向佐夫妇,两人合体带着孩子游玩,看起来有说有笑的,感情十分要好。小婷简单扎起头发,素颜戴着口罩,眉眼之间似乎比较憔悴,此次现身的状态引发不少争议。网千年前就有吊带裙唐代女性爱穿抹胸比现代还时髦早在1千多年前的唐朝,就已出现类似吊带裙的服饰。(示意图达志影像)现代服装款式多样,不过唐朝女装也不容小觑,款式还富时装性,可说是历代中的佼佼者。中华服饰文化研究理事陈诗宇提到,唐当20年代遇见20年代,高级订制如何谱写女性主义的新篇章?高级订制的世界从不缺少对时间与技艺的赞颂,而在Dior2023春夏高级订制系列中,这些对于传统技艺和精神的表达,被品牌女装创意总监MariaGraziaChiuri通通隐匿在一系列CocoChanel(可可香奈儿)去世1971年,CocoChanel(可可香奈儿)去世。我相信很多男士,全世界不光是咱中国的男士,还有日本的韩国的美国的等等,一想起Chanel就很痛苦,因为太太们。没有太太之前,女朋如何搭配丝袜才能时尚性感又减龄黑色是永不过时的颜色,加上个性十足的网格花纹,富有时尚的美感,显得腿部格外修长,给人视觉上的强烈冲击!腿部皮肤在黑色丝袜下面若隐若现,展现自然脱俗的女神气质和性感朦胧的美,后面字母穿阔腿裤,到底搭配平底鞋还是高跟鞋?主要看这些小细节在日常生活当中,裤装是最必不可少的单品,其中,阔腿裤可以说是百搭又遮肉的选择,宽松的裤管能够遮住腿粗赘肉,对于任何身材的女性都很友好。阔腿裤虽然很好穿,但是也要学会挑选鞋子,只有搭小S一家五口外出旅游,看起来从之前风波里走出来了!1月24日初三这天,有网友晒出在澳洲偶遇小S一家五口的照片,许久没有看到小S外出的消息了,一时间引发网友热议。照片中能够看到小S许雅钧,还有三个女儿。小S戴着白色镜框的墨镜,上身穿
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网