« はてなブックマークに新しいウインドウで登録 | トップページ | コピーできないPDFからコピーする »

2006年5月27日 (土)

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の第二引数のエンコードを自動的にやってくれる。

|

« はてなブックマークに新しいウインドウで登録 | トップページ | コピーできないPDFからコピーする »

コメント

この記事へのコメントは終了しました。