今日は、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)著作権絡みの問題があるかもしれないので実際にやるのはやめましょう。あくまでもこの情報はネットワークプログラミングの勉強のための資料としてご一読ください。
うまく動きません。
返信削除こちらのプログラムはサーバーからアクセスしないといけないのですか?
Junさん>
返信削除ローカルPCでも動くはずですよ。
コマンド引数に画像がおいてあるURLをいれてみてください。