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
最新文章
- mysql忘记root密码解决方法
- 快速掌握、学习HTML的方法
- 说说设计模式~组合模式(Composite)
- HDU5878
- 数据库知识整理<;五>;
- SpringMVC中Controller和RestController
- 后台返回json数据,前台显示代码
- STL--queue
- http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024
- Java实现 Base64、MD5、MAC、HMAC加密(转)
- 用TensorFlow实现文本分析模型,做个聊天机器人
- 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频
- bugku 逆向 take the maze
- FFmpeg 学习(一):FFmpeg 简介
- Mysql中的定时任务
- [No000012D]WPF(5/7)依赖属性
- cakephp 利用Pushapi扩展 进行app 消息推送
- 如何设置Ultraedit自动换行
- SDWebImage从缓存中获取图片
- Frequent values UVA - 11235(巧妙地RMQ)
热门文章
- git本地仓库远程仓库地址更改
- RN开发-Navigator
- django学习,captcha图形验证码的使用
- 刷题76. Minimum Window Substring
- 巨杉Talk | 拒绝数据碎片化,原生分布式数据库灵活应对数据管理需求
- 增删改查-删除(php)
- PP: Data-driven classification of residential energy consumption patterns by means of functional connectivity networks
- javaSE--基础02
- spring(四):IoC初始化流程&;BeanDefinition加载注册
- CompletableFuture--给future调用增加回调或聚合操作