読者です 読者をやめる 読者になる 読者になる

If-Modified-Since付きのGET

Python

Pythonでダウンロードをするとき、If-Modified-Sinceを付けてGETしようとしていろいろ悩んだメモ

import urllib2
req = urllib2.Request('http://example.com/')
req.add_header('If-Modified-Since', "HTTP日付")
try:
    foo = urllib2.urlopen(req)
    print foo.code
except urllib2.HTTPError, e:
    print e.code

これで指定した日付以降に更新があれば、ステータスコードの200が
無ければ304が表示されました
HTTP日付についてはhttp://www.studyinghttp.net/header#HTTP-Dateを参考に
前にGETしたLast-Modifiedフィールドの内容を突っ込めばいいのかな
本当はこういうふうに例外処理で扱うよりも
http://www.diveintopython.org/http_web_services/etags.html
で説明されているように、ハンドラを渡した方がいいやり方なのかな?