如果只是要模拟提交一个不包含文件字段的表单,实现起来是很简单的,但涉及到文件上传就有一点小复杂,需要自己对文件进行编码,或者使用第三方模块。
如果机器上有 PycURL,那么可以使用 PycURL 来上传文件。
不过,由于 PycURL 需要用到 curl,在 Windows 下安装可能会有点麻烦,除 PycURL 外,也有一些其它实现 POST 文件上传的方式,比如 这儿 的 2 楼有人贴出了一个将文件进行编码之后再 POST 的方法,另外还有MultipartPostHandler、urllib2_file、poster 等第三方模块。但 MultipartPostHandler 这个模块似乎比较老了,urllib2_file 我试用了一下遇到错误没有成功,这儿我想介绍的是另外一个第三方模块 poster。
如果机器上安装了 Python 的 setuptools,可以通过下面的命令来安装 poster:
easy_installposter装完之后,就可以像下面这样上传文件了:
[python] view plain copy很简单,文件就上传完成了。
其中那个 register_openers() 相当于以下操作:
[python] view plain copy新闻热点
疑难解答