Pythoy实现接口自动化Requests的使用

8 篇文章 0 订阅
8 篇文章 0 订阅

一、requests库

1、 介绍和安装requests库

requests库,是一个用纯python实现的库,基于urlib实现。能够使用它来发送http
接口请求,和进行简单的接口测试。

1.1 安装requests

在线命令: pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 来进行
安装,-i是指定国内镜像资源,使我们安装起来更快捷。
首次安装:
在这里插入图片描述
检查是否安装成功的方法:
pip show requests
在这里插入图片描述
可以看到如果能正常战士版本号Version: 2.25.1,说明已经安装成功。

2、学习使用requests发送请求(Get、Post)

使用requests发送get,post请求的方法:

代码实例说明
requests.post(…)发送post请求
requests.get(…)发送get请求
案例一

代码演示

# 导包
import requests
# 使用get请求方法请求百度
response = requests.get(url="http://www.baidu.com")
# 打印结果
print(response.text)
requests库处理URL的查询参数有两种形式

第一种:通过url再带的查询参数来处理:http://www.baidu.com/s?wd=python
第二种:通过params关键字参数来处理:requests.get(url=“http://www.baidu.co
m/s”, params={“wd”:“python”})

案例:访问百度的搜索接口来实现传递url的查询参数
# 导入requests
import requests
# 使用requests模块发送get请求,获取返回的响应数据
# 需求:访问百度的搜索接口
response = requests.get(url="http://www.baidu.com/S", params=
{"wd": "翻身鱼"})
response = requests.get(url="http://www.baidu.com/S?wd=翻身鱼")
# 打印返回的结果
print("返回的结果为:", response.text)

上面两种方式实现的效果是一样的,可以根据需要随意使用。

使用requests实现post请求

代码演示

# 导包
import requests
# 使用get请求方法请求百度
response = requests.post(url="https://fanyi.baidu.com/langdetect",data={"query":"你好"})
# 打印结果
print(response.text)

其中使用data专门用来处理表单格式的请求体,如果是json格式的请求体,那么就是用json在接收。

3、学习使用requests库处理响应数据

请求的URL:response.url
状态行中的响应状态码:response.status_code
响应头:response.headers
响应头中的cookie:response.cookies
响应头中的编码:response.encoidng
响应体的文本格式:response.text
响应体的字节码形式数据:response.content
响应体的json形式的数据:response.json()

3.1 访问百度搜索页面,然后通过返回的response对象打印响应体的常用信息
# 导包
import requests
# 使用get请求方法请求百度
response = requests.get(url="https://fanyi.baidu.com")

# 2). 获取响应状态码
print("响应状态码为:", response.status_code)
# 3). 获取请求URL
print("请求URL为:", response.url)
# 4). 获取响应字符编码
print("响应字符编码为:", response.encoding)
# 5). 获取响应头数据
print("响应头数据为:", response.headers)
# 6). 获取响应的cookie数据
print("响应的cookie数据为:", response.cookies)
# 7). 获取文本形式的响应内容
print("文本形式的响应内容为:",response.text)
# 8). 获取字节形式的响应内容
print("字节形式的响应内容为:%s" % response.content)

如果返回的数据格式时json格式,那么就需要打印json格式的数据
案例

# 导入requests
import requests
# 发送访问查询天气接口的请求体
response =requests.get(url="http://www.weather.com.cn/data/sk/101010100.html")
# 并输出json数据
print("获取的天气信息为:", response.json())
# 输入后,可以发现,数据中有乱码,那么怎么解决
# 我们可以使用字节码的形式数据,并重新指定编码格式来打印
print("指定字节码形式的数据之后,然后在打印的结果为:",
response.content.decode('utf-8'))
# 获取的天气信息为: {'weatherinfo': {'city': 'å\x8c\x97京', 'cityid': '101010100', 'temp': '27.9', 'WD': 'å\x8d\x97é£\x8e', 'WS': 'å°\x8fäº\x8e3级', 'SD': '28%', 'AP': '1002hPa', 'njd': 'æ\x9a\x82æ\x97\xa0å®\x9eå\x86µ', 'WSE': '<3', 'time': '17:55', 'sm': '2.1', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9010_JB'}}
# 指定字节码形式的数据之后,然后在打印的结果为: {"weatherinfo":{"city":"北京","cityid":"101010100","temp":"27.9","WD":"南风","WS":"小于3级","SD":"28%","AP":"1002hPa","njd":"暂无实况","WSE":"<3","time":"17:55","sm":"2.1","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB"}}

其中我们使用json格式输出时会出现乱码的情况,这时我们可以使用字节码的形式输出并且在后面指定编码格式即可。

4、Headers处理

因为网站往往都会检测请求头的User-Agent,如果ua不合法,可能会获取不到响应。所以加请求头的目的就是模拟浏览器,欺骗服务器,获取和浏览器一致的内容。当然,有的时候甚至不止需要传User-Agent一个参数,还需要其他的参数像Cookie,Content-Type等等
案例展示

# 导入requests
import requests
# 发送访问百度接口,携带headers
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
response =requests.get(url="http://www.baidu.com",headers = headers)
# 打印结果
print(response.content.decode('utf-8'))
print(response.cookies)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值