requests使用小结(不定期更新)
request是python的第三方库,使用上比urllib和urllib2要更方便。
0x01
使用session发送:能保存一条流中获取的cookie,并自动添加到http头中
s = requests.Session()
resp=s.get(url,headers=header,verify=False,timeout=10)
0x02
post请求中payload的赋值
payload={
'param1':'value1',
'param2':'value2',
'param3':'value3'
}
resp=s.post(url,headers=header,data=payload,verify=False,timeout=10)
抓包可以看到发送的data部分为:
param1=value1¶m2=value2¶m3=value3
如果需要对值中的数据进行url编码:
import urllib
payload="captchaChannel=211¶ms=\"123455\""
urllib.quote(payload,''=&")
第二个参数表示不需要编码的字符,上例中只对引号“进行url编码,载荷为:
captchaChannel=211¶ms=%22123455%22
0x03
post请求中既有payload,又要发送文件:
假设文件是png格式图片,使用如下方式发送:
image_file=open('img.png', 'rb').read()
files = {'image': ('img.png', image_file)}
params = {
'username': self.username,
'password': self.password,
'softid': self.soft_id,
'softkey': self.soft_key
}
resp= s.post(url, data=params, files=files, headers=self.headers)
可以看到发送的内容是这样的,boundary应该是时间进行md5运算得到的值。这个后面跟的内容就是image文件。

0x04 headers的赋值
对于post请求可以不用手动填写Content-length,requests会自动帮我们计算并填写。
headers使用字典格式赋值:
header={
'Host': 'www.******.com',\
'Connection': 'keep-alive', \
'Accept': '*/*', \
'Origin': 'https://www.*****.com', \
'X-Requested-With': 'XMLHttpRequest', \
'User-Agent': 'Mozilla/4.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.116 Safari/537.36',\
'Referer': 'https://www.*******************', \
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', \
'Accept-Encoding': 'gzip, deflate, br',\
'Accept-Language':'zh-CN,zh;q=0.8', \
}
add_header={
'add1':'11111',
'add2':'22222'
}
如果后续请求中需要添加字段,可以使用:
header.update(add_header)
0x05 使用requests访问https
访问https的时候可以使用verify=False关掉验证
r = resuqests.get("https://www.baidu.com",verify=False)
print r.text
但是在一台新装centos系统上如上运行,出现了报错,经过分析,发现是新系统没有装ssl证书。
安装参考:http://blog.csdn.net/zuoyigexingfude/article/details/51035613
requests使用小结(不定期更新)的更多相关文章
- 基于C/S架构的3D对战网络游戏C++框架_【不定期更新通知】
由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C ...
- 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录
缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...
- net core 小坑杂记之配置文件读取(不定期更新)
其实很早就想写了,原想等积累差不多了再写的,但是发现遇到一个当时记下效果会比较好,所以就不定期更新这个系列了,后面获取会整个整理一下. 此篇记载net core入门时踩的一些坑,网上教程太少了,也不规 ...
- React性能优化记录(不定期更新)
React性能优化记录(不定期更新) 1. 使用PureComponent代替Component 在新建组件的时候需要继承Component会用到以下代码 import React,{Componen ...
- 不定期更新的IDEA功能整理
目录 不定期更新的IDEA功能整理 idea 命令 Preferences 和 Project Structure Keymap HTTP Proxy Postfix Completion 插件 插件 ...
- 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库
采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...
- JavaScript中的小陷阱(不定期更新。。)
1. var scores = [1, 2, 3]; var total = 0; for (var score in scores) { total += score; } var mean = t ...
- Keras 文档阅读笔记(不定期更新)
目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...
- GOM通区插件-支持GOM绝对路径-读取配置项-分割字符等功能。不定期更新
A-A+ 2019年07月19日 Gom引擎 阅读 45 views 次 [@Main] #IF #SAY [<读配置项/@读配置项>] [<写配置项/@写配置项>] [& ...
随机推荐
- 解决Oracle ORA-01033: ORACLE initialization or shutdown in progress错误 和 ORA-01589错误 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 SQL> startupORACLE 例程已经启动. Total System Global Area 13533 ...
- 【vue】 vue跳转页面:router-link/this.$router.push()
1.通过标签<router-link> <router-link to='A'>跳转到A页面</router-link> 2.通过方法 this.$router.p ...
- springboot之json传参(后台控制层如何接收和解析参数)
一般web端都是用form标签的形式进行表单提交到后台,后台控制层再用相应的实体对象去接收前端传来的json参数. 但是有时候前端界面很复杂,要传入后端的参数是各种标签里面的value值,这些值又是来 ...
- git 报错和解决
1.报错 fatal: refusing to merge unrelated histories 解决 两个不相干的库进行合并,需要进行强制合并 git pull origin master --a ...
- jdk8-》reduce操作
什么是reduce操作 聚合操作,中⽂意思是 “减少” 根据⼀定的规则将Stream中的元素进⾏计算后返回⼀个唯⼀的值 常⽤⽅法⼀: Optional<T> reduce(BinaryOp ...
- stopPropagation() 方法
定义和用法 不再派发事件. 终止事件在传播过程的捕获.目标处理或起泡阶段进一步传播.调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点. 语法 event.stopPropa ...
- Vue中自动获取input焦点
<input v-focus type="text" name="search" ref="input" autofocus v-mo ...
- 在github网站上更新fork的repo
打开fork的repo. 点击Pull request, 这里会跳转到一个页面提示There isn’t anything to compare. 点击switching the base,将orig ...
- C++-POJ1020-Anniversary Cake[搜索][dfs]
#include <set> #include <map> #include <cmath> #include <queue> #include < ...
- [Linux] Ubuntu18.04 安装之后配置过程
前言 最终还是安装了Ubuntu 虽然一开始想用Deepin 但是死活安装不上,我也很绝望(引导一直找不到 恢复BIOS默认设置也还是不行 所以 有些绝望啊....) 所以 为了让以后的我不再那么 ...