旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

Python-2.5を使ってgoo.glの短縮URLを得る

2010年10月18日

Pythonを使ってgoo.glの短縮URLを得る
http://coreblog.org/ats/pythonic-way-of-obtaining-shorten-url-by-using-goo_gl

・・・が、Python-2.5だと 201 Created を HTTPError にしてしまう問題
動かすまでに少々手間取ったので、その対応版です。

Python-2.5用コード


def shorten(url):
from re import match
from urllib2 import urlopen, Request, HTTPError
from urllib import quote
from simplejson import loads
req=Request('http://goo.gl/api/url',
'url=%s'%quote(url), {'User-Agent':'toolbar'})
try:
# -- 変更:ここから --
r=urlopen(req)
source=r.read()
except HTTPError, e:
if e.code != 201:
raise Exception('Unknown eror forming short URL.')
source=e.read()
j = loads(source)
# -- 変更:ここまで --
return j['short_url']
if __name__ == '__main__':
from sys import argv
print shorten(argv[1])

まだ、古いPythonは世間に多いと思ふ。