Search on the blog

2010年10月16日土曜日

Pythonで美人時計の画像を自動取得

昨日に引き続きPythonを用いたネットワークプログラミング。
今日は、Pythonでweb上の画像を自動取得するコードにチャレンジ。

まずは、Pythonでネット上の画像を取得します。
ソースはこちら。


import sys
import os
import urllib2

argvs = sys.argv
img_path = argvs[1]
output = "/home/kenji/python/img/" + os.path.basename(img_path)

print "downloading from", img_path, "to", output, "......"

opener = urllib2.build_opener()
req = urllib2.Request(img_path)
req.add_header('Referer', "http://bijint.com/jp")
file = open(output, 'wb')
file.write(opener.open(req).read())
file.close()


これで画像は取得できました。
次に、上記ソースを使って複数の画像をダウンロードすることを考えてみましょう。
ここでやっかいなのは、美人時計の画像は、現時刻および1分前の画像しかアクセスできないというところ。。cronを使えばいけそうですね。。

Unixのdateコマンドで
imgpath=`date '+http://www.bijint.com/jp/img/clk/%H%M.jpg'`
とすれば、その時間の画像ファイルのパスを生成できます。

あとは、この文字をPythonに渡すシェルスクリプトを作成して、cronで毎分実行してあげれば、24*60枚の美人お姉様の画像をダウンロードすることができます。(※注意1)
Windows OSを使っている人は、cygwinのcronでもOKです。

(注意1)著作権絡みの問題があるかもしれないので実際にやるのはやめましょう。あくまでもこの情報はネットワークプログラミングの勉強のための資料としてご一読ください。

2 件のコメント:

  1. うまく動きません。

    こちらのプログラムはサーバーからアクセスしないといけないのですか?

    返信削除
  2. Junさん>

    ローカルPCでも動くはずですよ。
    コマンド引数に画像がおいてあるURLをいれてみてください。

    返信削除