我已经阅读了很多关于multipart / forms,mechanize和twill的内容,但我无法找到如何实现代码。
Using MultipartPostHandler to POST form-data with Python
首先,我试图填写
上的表格 www.imagebam.com/basic-upload
我可以填写表格,但即使我提交()也无法发送数据。
在上面的页面查看源代码之后,我意识到我需要做的就是将正确的内容类型的数据“发布”到页面中(如果我错了请纠正我)
http://www.imagebam.com/sys/upload/save
直接..
我尝试使用poster.py,但无法理解这些东西是如何工作的。我可以使用机械化和斜纹一点,但我觉得因为这比简单的表格发布更复杂,我认为。
所以我的问题;
- 如何使用poster.py(或用户创建的多部分类)将图像上传到imagebam.com
- 或任何其他替代解决方案:)
答案 0 :(得分:0)
Mechanize不是完成任务的正确工具。
在python中实现http://code.google.com/p/imagebam-api/更加健壮。
示例是PHP / curl,将它们转换为python / urllib2应该是微不足道的。
答案 1 :(得分:0)
不要完全依赖机械化等第三方库。在python API ImageBam中实现其官方api 或者看一下在pyqt4 pymguploader中开发的这个项目来上传图片,而不是试图自己实现。
答案 2 :(得分:0)
是的!我做的。我用了 this question
以下是代码:
>>> from poster.encode import multipart_encode
>>> from poster.streaminghttp import register_openers
>>> import urllib2
>>> register_openers()
<urllib2.OpenerDirector instance at 0x02CDD828>
>>> datagen, headers = multipart_encode({"file[]": open("D:\hedef\myfile.jpg","rb"),"content_type":"1","thumb_size":"350"})
>>> request = urllib2.Request("http://www.imagebam.com/sys/upload/save", datagen, headers)
>>> print urllib2.urlopen(request).read()
现在我需要做的就是使用BeautifulSoup来完成缩略图代码:)