Gray sky, Blue sea.

programing, book, photo

urllib.urlopenでresponse取得できず困ったが、何とかなった。

裏側をjspで作っているサイトにて、普通にurllib.urlopenで取得しようとしたが、なぜかエラーページへ飛ばされ、2日はまった。
要はgetでなくpostで取得すればよいだけだった。そんなの真っ先に試せよ...
ページングしてるサイトとかではよくあるのかもしれない。

import urllib
import urllib2
from cookielib import Cookiejar

url = 'http://www.xxxxx.co.jp/page1'

cj = cookielib.CookieJar()
cjhndlr = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhndlr)

# postするパラメータが必要な場合、{}の中に設定。
req = urllib2.Request(url, urllib.urlencode({}))
res = opener.open(req)
html = res.read()

ついでにcookie管理できるようにしといた。