Requests 是第三方模块,如果要使用的话需要导入。Requests也可以说是urllib模块的升级版,使用上更方便。

这是使用urllib的例子。

import urllib.request
import json
url = 'http://www.weather.com.cn/data/sk/101190408.html'
res = urllib.request.urlopen(url)#发送请求
result = res.read().decode()#获取结果,结果是byte类型的需要decode()
print(json.loads(result))

下面是Requests 模块的使用。

支持的请求:

requests.get(‘https://github.com/timeline.json’) #GET请求
requests.post(“http:xxx.xx.com/post”) #POST请求
requests.put(“http:xxx.xx.com/put”) #PUT请求
requests.delete(“http:xxx.xx.com/delete”) #DELETE请求
requests.head(“http:xxx.xx.com/head”) #HEAD请求
requests.options(“http:xxx.xx.com/get”) #OPTIONS请求

发送GET请求:

import requests,json
url = 'http://api.xx.cn/api/user/stu_info?stu_name=hi'
req = requests.get(url)#发送get请求
print(req.text)#获取结果直接返回的就是json串
print(type(req.text)) #str
print(json.loads(req.text))#json转字典
print(req.json())#获取结果就是字典,只有返回的是json串的话才能用req.json()
print(type(req.json()))#dict

发送POST请求

url = 'http://api.xxx.cn/api/user/login'
data = {'username':'aa','passwd':''}
req = requests.post(url,data)#发送post请求,第一个参数是url,第二个参数是请求的数据
print(req.json())

发送格式为json的数据

url = 'http://api.xxx.cn/api/user/add_stu'
data = {
"name":"aa",
"grade":"bb",
"phone":13512530000, }
req = requests.post(url,json=data)#发送post请求,第一个参数是url,第二个参数是请求的数据,发送的json的话就写json=data
print(req.json())

发送带cookie的请求

url = 'http://api.xx.cn/api/user/gold_add'
data = {'stu_id':231,'gold':''}
cookie = {'aa':'3d867b361afdaac1381b02ae746c7278'}#key 为登陆的用户名,value为sign的值
req = requests.post(url,data,cookies=cookie)#添加cookie
print(req.json())

发送的请求中带Header

url = 'http://api.xxx.cn/api/user/all_stu'
header = {'User-Agent':'Chrome'}
req = requests.get(url,headers = header)
print(req.json())

上传文件

url = 'http://api.xxx.cn/api/file/file_upload'
f = open(r'D:\aa.jpg','rb')#图片要指定以二进制方式打开
r =requests.post(url,files={'file':f})
print(r.json())

下载文件,图片,视频

url = 'https://images2017.cnblogs.com/blog/412654/201712/412654-20171213115213238-464712233.png'
r =requests.get(url)
print(r.status_code)#获取请求状态码
print(r.content)#获取返回结果二进制格式的
fw = open('bt.jpg','wb')#当前路径
#fw = open(r'd:\bt.jpg','wb')#指定绝对路径
fw.write(r.content)#将二进制格式内容写入文件
fw.close()

爬虫,把网页保存到本地

url = 'http://www.cnblogs.com/nancyzhu/p/8029994.html'
r = requests.get(url)
f = open('page.html','wb')
f.write(r.content)
f.close()

python3 requests 进行接口测试、爬虫使用总结的更多相关文章

  1. Python3 + requests + unittest接口测试

    一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...

  2. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  3. python3+requests库框架设计01-自动化测试框架需要什么?

    什么是自动化测试框架 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 接口自动化测试框架核心无非是选择 一个用来编 ...

  4. python3+requests:接口自动化测试(二)

    转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...

  5. Python3+Requests+Excel完整接口自动化框架

    框架整体使用Python3+Requests+Excel:包含对实时token的获取 框架结构图 1.------base -------runmethond.py runmethond:对不同的请求 ...

  6. requests实现接口测试

    python+requests实现接口测试 - get与post请求基本使用方法 http://www.cnblogs.com/nizhihong/p/6567928.html   Requests ...

  7. python3+requests:使用类封装接口测试脚本

    前言:接口测试用例较多,我们不可能每个用例都写一次requests,get或者requests,post等,所以对共用方法要进行封装处理 第一次修改:将get请求和post请求单独定义出来,使用过程中 ...

  8. 【python3】如何建立爬虫代理ip池

    一.为什么需要建立爬虫代理ip池 在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑.在一段时间内被禁止访问. 这种时候,可 ...

  9. 2.1 Python3.5安装以及爬虫需要的环境配置

    之所以选用Python,是因为对于网络爬虫来说,Python是最好上手的一种语言.本文讲述的安装配置都是基于Windows的环境. 另外我想说的是,文中用到的下载链接尽量官方网站上的下载链接,这是我比 ...

随机推荐

  1. 第三章 Spring.Net 环境准备和搭建

    在前面一章我们介绍了依赖注入,控制反转的概念.接下来我们来真正动手搭建一下Spring.Net的环境,看一下Spring.Net 中的控制反转和依赖注入是什么样子. 3.1  Spring.Net 下 ...

  2. 超全面的JavaWeb笔记day18<事务&连接池&DBUtils>

    1.事务 ACID 原子性 一致性 隔离性 持久性 mysql中开启和关闭事务 开启事务:START TRANSACTION 结束事务 提交事务:COMMIT 回滚事务:ROLLBACK JDBC中开 ...

  3. Effective C++ Item 18 Make interfaces easy to use correctly and hard to use incorrectly

    1. A good API will provide easy to use interfaces but also provide hard to miss-use interfaces. Usua ...

  4. 破解X-Pack和更新许可证

    某一天打开 Kibana 对应的 Monitoring 选项卡的时候,发现提示需要下载新的 license,旧的 license 已经过期了: 退出重新登录 发现禁止登录,提示:Login is di ...

  5. iOS中UIImage转换为NSData 方法

    参考网址:http://blog.csdn.net/lovenjoe/article/details/7484217 天牛 感谢作者的硕果 在Iphone上有两种读取图片数据的简单方法: UIImag ...

  6. ubuntu安装TexturePicker

    TexturePacker网页:https://www.codeandweb.com/texturepackerTexturePacker下载页面:https://www.codeandweb.com ...

  7. win10下安装Oracle 11g 32位客户端遇到INS-13001环境不满足最低要求

    在以管理员身份运行setup.exe之后,出现了:[INS-13001]环境不满足最低要求,通过网上搜索之后找到了解决途径 首先,打开你的解压后的database文件夹,找到stage,然后cvu,找 ...

  8. OpenStack三个节点icehouse

    一.环境准备 1.架构 创建3台虚拟机,分别作为controll节点.network节点和compute1节点. Controller节点:1processor,2G memory,5G storag ...

  9. system times on machines may be out of sync

    今天在hadoop集群执行任务的时候报了一个这个错误,听名字应该是三台机器的时间不同步.于是同步一下时间即可解决 1.安装ntpdate工具 yum -y install ntp ntpdate 2. ...

  10. java基础---->java中变参函数的使用

    Java的变参函数实现实际上参数是一个数组,今天我们就简单的学习一下它的用法. java中的变参函数 一.它的使用方法如下: public class VariableParam { private ...