私は Web 開発の初心者なので、次の質問が少し素朴に聞こえる場合はご容赦ください。Python を使用して Web フォームに投稿するにはどうすればよいですか? 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 file=@/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 ファイルではないと不平を言いますが、実際には.apk ファイルです。しかし、コメントアウトされた os.system を使用して curl に切り替えると、動作します! したがって、ここでリクエストに何かが欠けているとは思えません。なにか提案を?