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&param2=value2&param3=value3

如果需要对值中的数据进行url编码:

import urllib

payload="captchaChannel=211&params=\"123455\""

urllib.quote(payload,''=&")

第二个参数表示不需要编码的字符,上例中只对引号“进行url编码,载荷为:

captchaChannel=211&params=%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

最新文章

  1. mysql忘记root密码解决方法
  2. 快速掌握、学习HTML的方法
  3. 说说设计模式~组合模式(Composite)
  4. HDU5878
  5. 数据库知识整理<五>
  6. SpringMVC中Controller和RestController
  7. 后台返回json数据,前台显示代码
  8. STL--queue
  9. http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024
  10. Java实现 Base64、MD5、MAC、HMAC加密(转)
  11. 用TensorFlow实现文本分析模型,做个聊天机器人
  12. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频
  13. bugku 逆向 take the maze
  14. FFmpeg 学习(一):FFmpeg 简介
  15. Mysql中的定时任务
  16. [No000012D]WPF(5/7)依赖属性
  17. cakephp 利用Pushapi扩展 进行app 消息推送
  18. 如何设置Ultraedit自动换行
  19. SDWebImage从缓存中获取图片
  20. Frequent values UVA - 11235(巧妙地RMQ)

热门文章

  1. git本地仓库远程仓库地址更改
  2. RN开发-Navigator
  3. django学习,captcha图形验证码的使用
  4. 刷题76. Minimum Window Substring
  5. 巨杉Talk | 拒绝数据碎片化,原生分布式数据库灵活应对数据管理需求
  6. 增删改查-删除(php)
  7. PP: Data-driven classification of residential energy consumption patterns by means of functional connectivity networks
  8. javaSE--基础02
  9. spring(四):IoC初始化流程&BeanDefinition加载注册
  10. CompletableFuture--给future调用增加回调或聚合操作