我是网站开发的新手,所以如果下面的问题听起来有点幼稚,那么请仁慈。我如何使用python发布到web表单?我知道网络的形式是这样的,我要上传本地文件为它在线处理,并得到返回的数据发布数据到网络进行处理
<form action="process.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" id="chooser" /><br />
<input type="submit" value="Upload" name="submit" />
</form>
这里就是我有我的Python程序为止。
upfile = urllib.urlencode({'file':path/to/my/local/file})
filehandle = urllib.urlopen('http://www.comdroid.org/', upfile)
soup = BeautifulSoup(filehandle)
print soup
我想看到返回的结果,但目前的代码片段只给了我不处理我上传的文件的结果。有什么我缺少
------------ UPDATE ---------------- 这里是我如何做到这一点现在
import urllib2
import urllib
import requests
import os
files1 ={'file':open('/opt/apps/au.com.psyborg.sbc-5.apk','rb')}
#response= os.system("curl --form [email protected]/opt/apps/au.com.psyborg.sbc-5.apk --form submit=Upload www.comdroid.org/process.php")
req = requests.post('comdroid.org/process.php', files = files1)
print req.text
奇怪的是,我不能要求这样做,服务器抱怨我的文件不是.apk文件,它实际上是。但如果我使用os.system作为注释切换到curl,它就可以工作!所以我怀疑我在请求中错过了一些东西。任何建议?
谢谢,我现在了解整个框架,但仍然无法获得所需的结果。发生了什么事是服务器不断拒绝我的要求说我的文件不是必需的.apk文件(实际上它是。 – Daniel 2013-03-09 17:17:41
请参阅我的更新 – Daniel 2013-03-09 17:26:35
是否有可能“请求”的方式编码.apk文件以某种方式扭曲它和.apk文件无法被服务器识别? – Daniel 2013-03-09 17:27:57