1

私は 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 に切り替えると、動作します! したがって、ここでリクエストに何かが欠けているとは思えません。なにか提案を?

4

1 に答える 1