November 13, 2007

Python入門:urllibとurlencode

By kalebdf
「変換変換・・・」


GETリクエストの際に、URLとリクエストパラメータを結合する方法と、ダブルバイト文字(日本語とか)をリクエストに載るようにエンコードする方法。

たとえば、Googleで「ほげ」を検索すると、次のようなGETリクエストが生成されるとする。(ちょっとリクエストを省略)

http://www.google.co.jp/search?q=%E3%81%BB%E3%81%92&lr=lang_ja

'http://www.google.co.jp/search'に'?'を付けて、2つのリクエストパラメータを結合している。コレをPythonで作り出す。

import urllib
url = 'http://www.google.co.jp/search?'
keyword = u'ほげ'
lang = 'lang_ja'
encoding = 'utf-8'
query = {'q': keyword.encode(encodeing),
'lr': lang
} #辞書型オブジェクト
print url + urllib.urlencode(query)

◆ urlopen(url[,data[,proxies]])



urlにはそのまま、URLを渡す。

POSTリクエストであれば、dataに辞書型オブジェクトを渡す。

Proxyでのアクセスであれば、オプション引数proxiesにProxyについて辞書型オブジェクトを代入します。



◆ urlencode(query[,doseq])

queryには辞書型のオブジェクトが入り、'key=value'の形で渡される。

◆ 参考URL