python_module request 传输文件

目录

概要

改动思路

request参数简要介绍

代码展示

小结


概要

提升工作效率,通过python request模块上传压缩文件。

公司跨部门工作经常需要进行文件互传,为了保证信息安全,公司内建了一个网站来保存压缩文件,但每次传输都需要多次点击完成文件上传,繁琐低效。尝试通过request 构建自动上传压缩文件的脚本。

改动思路

原本上传需要点击按钮选择文件,随后submit。准备使用request模块完成自动上传。

 检查网页元素后发现使用POST,content - Type 为multipart/form-data,遂去查阅很多资料,试了很久都没有效果。最后发现其实许多教程里讲到的headers(请求头)不要也可以,不用太关注content - Type,重点是payload不能出问题,需要把上传的数据格式设置好。

 payload如下:

 

 

 关注到其实是有三个参数在,但是我们文件是在text这个类别中,sub这个类别不重要,直接写它给的值,txt完全看不出什么作用,直接不去管它。

request参数简要介绍

 使用request需要了解其中常用的部分参数,一些常用的参数如下:

  • proxy :设置你的代理,需要连接外部网站时要进行VPN配置,由于网站是公司内网,故不需要配置。
  • auth :设置你的用户名和密码,常规网站都使用usr和password进行认证,如不是请自行确认。
  • files :设置你需要传输的文件,这里推荐去官方网站看一下,不同文件类型可以采用不同的设置。
  • url:设置对应的网址链接
  • timeout: 设置响应时间,建议加上一个,本人实际debug过程中经常卡住不动,只能强行关闭。

代码展示


import requests

# 文件上传的接口
#proxy ={'http':'http://usr:password@XXX.XXX.XXX.XXX:XXXX','https':'http://usr:password@XXX.XXX.XXX.XXX:XXXX'}#如果去外部链接,需要增加代理选项

url_path='给出你的网址!'
# url_path='https://www.runoob.com/python3/python3-tutorial.html' 
usr='用户名'
pw='密码'


fileObject = {
    'text':('monkey_king.zip',open('monkey_king.zip','rb'),'zip'),
    'sub': (None,'Submit',None),
    'file': (None,'',None)
}

req = requests.post(url=url_path,files=fileObject,timeout=2,auth=(usr,pw))
print(req.text)


小结

 其中的部分参数还是有些不清楚,如果有问题还请指正。当然你可以参照以下网址去了解更多内容:

http://www.jianshu.com/p/e810d1799384
https://stackoverflow.com/questions/3508338/what-is-the-boundary-in-multipart-form-data
http://docs.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file
https://stackoverflow.com/questions/12385179/how-to-send-a-multipart-form-data-with-requests-in-python/12385661#12385661

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值