requests---requests上传图片
我们在做接口测试的时候肯定会遇到一些上传图片,然后进行校验,今天我们一起学习通过requests上传图片,查看是否上传成功
抓取上传接口
这里我以百度为例子进行操作,为啥要用百度呢,主要上传文件比较简单不用登录啥的~~~通过fiddler抓取上传图片的接口地址以及请求携带的参数内容
通过下面操作进行选择图片进行上传,然后通过fiddler进行分析接口内容
通过分析抓取的内容,我们可以看到接口地址为:“https://graph.baidu.com/upload”
请求的参数类型为from-data,这个类型后面会具体的介绍,这里先不具体说了,这里不影响我们操作
参数格式
这里在插个知识点,就是requests文档中有对上传文件单独书写,我们可以按照他们的标准进行书写详细的可以进行查看requests官方文档
参数书写情况为:
# 123.jpg为图片,与代码在当前目录下,image/jpeg 为图片格式
files = {
"tn":"pc",
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":"pc",
"image_source":"PC_UPLOAD_SEARCH_FILE",
"range":'{"page_from": "searchIndex"}'
}
请求上传图片
选择图片
# coding:utf-8
import requests
url = "https://graph.baidu.com/upload"
files = {
"tn":"pc",
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":"pc",
"image_source":"PC_UPLOAD_SEARCH_FILE",
"range":'{"page_from": "searchIndex"}'
}
r = requests.post(url,files=files)
print(r.json())
通过查看返回,点击链接进入到百度识图中
但是当我们点击进去后会发现浏览器好像放大了我们的页面一样,这是什么鬼?哪里出错误了吗?
原来是我们在填写数据的时候数据的格式写错了,有一些参数没有添加,我们要表示为None
# 每个value其实都是有2个参数,只是其中一个没有,那么如果我们不穿的话就会出现刚才的问题,这个是需要传None
files = {
"tn":(None,"pc"),
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":(None,"pc"),
"image_source":(None,"PC_UPLOAD_SEARCH_FILE"),
"range":(None,'{"page_from": "searchIndex"}')
}
通过修改后的链接,我们再一次取请求,查看这次的情况,发现是好的,突然感叹到python太强大了~~
通过一个小的例子,我们学习了如何通过requests发送from-data的数据类型,但是如果想要上传大文件,需要安装第3方库,这个我们下次在一起学习~~~持续更新中~~~
如果感觉写的对您有帮助,可以右下角点击个关注哦~~点关注,不迷路。
requests---requests上传图片的更多相关文章
- Python-第三方库requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- 爬虫requests模块 2
会话对象¶ 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能.所 ...
- python Requests模块的简要介绍
Requests的安装: pip install Requests Requests的使用: import requests url = "http://www.mzitu.com" ...
- requests高级用法
会话对象 当你向同一主机发送多个请求时,session会重用底层的tcp连接,从而提升性能,同时session也会为所有请求保持 cookie. # _*_ coding: utf-8 _*_ imp ...
- [转载]Python-第三方库requests详解
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- python3使用requests登录人人影视网站
python3使用requests登录人人影视网站 继续练习使用requests登录网站,人人影视有一项功能是签到功能,需要每天登录签到才能升级. 下面的代码python代码实现了使用requests ...
- 转:Python requests 快速入门
迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: ·Requests 已安装 ·Reques ...
- Requests:Python HTTP Module学习笔记(二)(转)
在上一篇日志中对Requests做了一个整体的介绍,接来下再介绍一些高级的用法,主要资料还是翻译自官网的文档,如有错漏,欢迎指正. 参考资料:http://docs.python-requests.o ...
- Python Requests模块讲解4
高级用法 会话对象 请求与响应对象 Prepared Requests SSL证书验证 响应体内容工作流 保持活动状态(持久连接) 流式上传 块编码请求 POST Multiple Multipart ...
- Python Requests库:HTTP for Humans
Python标准库中用来处理HTTP的模块是urllib2,不过其中的API太零碎了,requests是更简单更人性化的第三方库. 用pip下载: pip install requests 或者git ...
随机推荐
- 如何Windows下配置Prometheus的监控数据文件为3天
如上图,prometheus的data文件夹时间久了会变得很大,听说是保留15天的数据.但是实际上,我只需要保留3天的数据就够了,之前试过用批处理文件清理,但是强行删除会导致peometheus崩溃, ...
- 理解ConcurrentHashMap1.8源码
ConcurrentHashMap源码分析 其实ConcurrentHashMap我自己已经看过很多遍了,但是今天在面试阿里的时候自己在描述ConcurrentHashMap发现自己根本讲不清楚什么是 ...
- 避免网络爬虫IP被封的策略
背景 这两天一直在搞Java网络爬虫作为Java课程设计,目标是爬取豆瓣电影top250的影评,之后可能还需要进行情感分析,当然这就不是爬虫的内容了.我的爬虫程序在一开始只是一个页面一个页面的爬取信息 ...
- Java题库——Chapter16 JavaFX UI组件和多媒体
Chapter 16 JavaFX UI Controls and Multimedia Section 16.2 Labeled and Label1. To create a label with ...
- 通过传XML格式导入到ORACLE的销售订单
procedure IMPORT_OM(p_unid varchar2, --流程ID p_CUSTOMER_PO varchar2, --合同编号 p_xmlstr varchar2, --clob ...
- Android五大布局详解——GridLayout(网格布局)
GridLayout 本章以一个小的实现示例讲述: 实现效果如图: 代码实现: <?xml version="1.0" encoding="utf-8"? ...
- 抖音短视频教程VIP培训课程(2019实时更新中)
抖音联盟,抖友会,抖音联盟会员,抖音联盟学员,抖音批量做号团队,工作室带队,联盟学员统一官网认证可查,统一变现渠道担保,成熟技术技术后盾,实时工作室真机实测规则,抖音情感励志书单模式2.0升级,拒绝落 ...
- Spring Security安全框架
今天来简单介绍一下Spring Security安全框架 简介 Spring Security 提供了基于javaEE的企业应有个你软件全面的安全服务.这里特别强调支持使用SPring框架构件的项目, ...
- VMware Workstation虚拟机安装CentOS-7-Minimal经验分享
本文主要为0基础的小白准备,有一定经验的大神请忽略.因为最近刚接触linux,在其中也是遇到无数的弯路,本着互惠互利原则,特写这个博客,希望后来人能少走点弯路,更快的进入状态.话不多说,上货. 一,首 ...
- C++ std::stack 基本用法
#include <iostream> #include <string> #include <stack> // https://zh.cppreference. ...