pythonスクリプトからmultipart/form-dataを送る。
Webサービスのサイトに写真とかを送信するのを自動化するにはどうするか、的な話。
最初はIEとJavaScriptで適当に送ってみようと思ったんだけどセキュリティがきつくなってて無理でした。というわけでpythonを使うことに。が、pythonもデフォルトではmultipart/form-dataはサポートしてない。ので、結局のところHTTPリクエストを自分でがりがり書くしかない。んでよくよく調べてたらurllib2をかっこよく拡張してる人を発見。
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306/
このスレッドの一番最後のコメント。
http://odin.himinbi.org/MultipartPostHandler.py
このMultipartPostHandler.pyを以下のように使うとurlとパラメータ渡すだけで通信できる。
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
MultipartPostHandler.MultipartPostHandler)
params = { "username" : "bob", "password" : "riviera",
"file" : open("filename", "rb") }
opener.open("http://wwww.bobsite.com/upload/", params)
ちなみにこのMultipartPostHandlerをハンドラに加えるとopenの第二引数のエンコードを自動的にやってくれる。
| 固定リンク
この記事へのコメントは終了しました。

コメント