ページ

2011年2月8日

urllib2でkeep-alive

別にurllib2じゃなくてもよかったんです。Pythonでkeep-aliveでhttpクライアントさえ動いてくれれば、何でもいいのです。pythonでkeep-aliveでhttpクライアントをちょめちょめしたいとgoogleに聞くと、最近はやりのSではじまるサイトをお告げで示してくれました。Pythonでurllib2でkeep-aliveを使うには、urlgrabber使いなよ、と言っています。仕方なく、この人と心中することにしました。後でもうちょっと読むと、pycurlと言う人もいます。urlgrabberはpure pythonなので、pureな自分に最適なんだと言い聞かせています。

さて、urlgrabberのtar ballをダウンロードしてインストールします。ただ、ダウンロードしたそのものだと、僕のpython2.7だとちゃんと動いてくれないので、この記述のようにコードを変更します。

import urllib2
import time
from keepalive import HTTPHandler
keepalive_handler = HTTPHandler()
opener = urllib2.build_opener(keepalive_handler)
urllib2.install_opener(opener)

fo = urllib2.urlopen('http://localhost:8088/')
print fo.read()

print "sleeping"
time.sleep(10)

fo = urllib2.urlopen('http://localhost:8088/iya')
print fo.read()


とあるサーバでチェックしたらちゃんとkeep-aliveしています。と言うことで、テストコードが完成です。

でわでわ。
----

使ったのは0.2.1でしたが、最新版の3.9.1だとpycurlに依存しているんですね。
pycurlを直接使うのが一番。urlgrabberは忘れましょう

0 件のコメント: