最近有个事情,需求是发送post请求到web服务器,达到文件上传的目的,这个当然是有原因的,因为那个网站没有做批量上传,而需要上传的东西又太多……好了,废话不多说,进入正题:
这样的小事情当然还是用python来写比较简单快捷,用到http请求最直接的方式是用标准库里面的urllib和urllib2,但不能满足这次的需求,因为文件上传要将form表单的method设置成multipart/form-data, 而urllib里面的实用的是默认的application /x-www-form-urlencoded,于是找到了pycurl poster 和urllib2_file三个可用的库,我只尝试了pycurl,其他的有时间再尝试。(http://blog.chinaunix.net/uid-1721137-id-348702.html这里有poster的尝试,我也主要从他这里获取的信息)
关于pycurl可以去它的主页上进一步了解(http://pycurl.sourceforge.net/),可以发送多种协议的信息,而且可以携带cookie,而且有并发控制的实现,很强大!它是著名的libcurl的python绑定,我上common-lisp.net上查了一下,lisp也有对应的库可以使用(cl-curl)!这个世界真美好!
# -*- coding: utf-8 -*-
import pycurl
import os
def upload(filename):
pc = pycurl.Curl()
pc.setopt(pycurl