python如何模拟含有文件上传的表单
不上传文件直接提交容易实现,但现在想提交的同时再上传一张图片抓包看提交的数据里有Content-Disposition:form-data;name="attach[]"...
不上传文件直接提交容易实现,但现在想提交的同时再上传一张图片
抓包看提交的数据里有
Content-Disposition: form-data; name="attach[]"; filename="01a.jpg"
这一项该怎么模拟?
有没有urllib2或pycurl实现这一点的代码参考一下
感谢zhouqb提供的模块,但是这个模块还是不能达到我的要求
我导入这个模块后无法提交,会丢失cookies 展开
抓包看提交的数据里有
Content-Disposition: form-data; name="attach[]"; filename="01a.jpg"
这一项该怎么模拟?
有没有urllib2或pycurl实现这一点的代码参考一下
感谢zhouqb提供的模块,但是这个模块还是不能达到我的要求
我导入这个模块后无法提交,会丢失cookies 展开
2个回答
2015-07-22 · 知道合伙人互联网行家
关注
展开全部
在机器上安装了 Python 的
setuptools,可以通过下面的命令来安装 poster:
easy_install poster
装完之后,就可以像用下面代码模拟上传文件表单了:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
# 在 urllib2 上注册 http 流处理句柄
register_openers()
# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 <input> 标签的 name 参数设置
# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})
# 创建请求对象
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()
展开全部
更新:
其实我自己没有亲自试过,你可以看一下这个网页:
http://stackoverflow.com/questions/407468/python-urllib2-file-upload-problems
提问者给的第二段代码,他自己说工作得很好,里面有用到cookie,不知道对你有没有帮助……
——————————————————————
有人写了一个 urllib2 的扩展使其支持简单的文件上传:
http://github.com/seisen/urllib2_file/
下载回来安装后试试:
import urllib2_file
import urllib2
data = {'name': 'value',
'file': open('/etc/services')
}
urllib2.urlopen('http://site.com/script_upload.php', data)
open() 函数的参数改成你想上传的文件名
其实我自己没有亲自试过,你可以看一下这个网页:
http://stackoverflow.com/questions/407468/python-urllib2-file-upload-problems
提问者给的第二段代码,他自己说工作得很好,里面有用到cookie,不知道对你有没有帮助……
——————————————————————
有人写了一个 urllib2 的扩展使其支持简单的文件上传:
http://github.com/seisen/urllib2_file/
下载回来安装后试试:
import urllib2_file
import urllib2
data = {'name': 'value',
'file': open('/etc/services')
}
urllib2.urlopen('http://site.com/script_upload.php', data)
open() 函数的参数改成你想上传的文件名
参考资料: http://fabien.seisen.org/python/urllib2_file/
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询