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 [<读配置项/@读配置项>] [<写配置项/@写配置项>] [& ...
随机推荐
- <软件工程基础>
我是JX_Z,学习信息安全方向 //(怎么在这头不头尾不尾的地方弄个自我介绍这么尴尬呢) 之前也写过一些随笔记录自己的学习过程 软件工程基础课程中遇到的问题和学习心得都会记录在这篇文章中不断更新. 谢 ...
- navicat连接mysql查询结果中文都是?号(C#)
记录解决方法,方便以后查看. 有几个地方需要注意: 1.连接mysql数据库的字符串最后加上Charset=utf8; 2.mysql中character_set_XX设置都为utf8,使用show ...
- vba工程密码清除
EXCEL vba工程密码破解 方法一:这种方法实际是避开VBA工程密码验证,即骗vba编辑器,该密码输入成功,请求放行.不管他是破解还是欺骗 能达到我们的目的角开就行________________ ...
- turtleh海龟库
Turtle海龟库 导入 import turtle turtle.setup(width,height,startx,starty) -setup():设置窗体的位置和大小 相对于桌面的起点的坐标以 ...
- 题解【洛谷P5788】【模板】单调栈
题面 单调栈模板题. 单调栈与单调队列一样,都是维护了一段区间内的顺序. 然后--这个题用一个栈维护一下贪心就没了. 具体参考这一篇题解 #include <bits/stdc++.h> ...
- js获取当前页面的url网址信息
设置或获取整个 URL 为字符串: window.location.href 获取内容:http://10.100.0.8:7000/SVP/ "window.location.href&q ...
- 174. 地下城游戏(逆向DP)
Q: 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士 ...
- vue图书小案例
小知识点: vue中计算属性有缓存(对象属性变化时才会更新),方法没有缓存,所以计算属性比方法效率高js中let有块级作用域,var没有块级作用域,所以var是有缺陷的this.letters[0] ...
- 关于jquery绑定事件执行两次
经常会出现jquery绑定事件执行两次的情况,如: $("a[tag=slide]").click(function () { alert(1); $(this).parent() ...
- Android 的UI基础布局的学习
一. 今天学习了Android 的UI基础布局的部分,绝大多数的布局都在Androidstudio的这个界面里,如下: 在左边的框里的palette的内部,包含了的大多数的布局所要用的button按钮 ...