[python]Python で 画像スクレイピング
突然ですが、いままでちょっとしたメモ書きを hiki や、このブログに書いていたわけですが、Emacs Wikiを使うようになって、これが便利すぎて、メモ書きは全部 Emacs-Wikiに書くようになってしまいました。
そんなわけで、ただでさえあまり更新されないこの日記の更新頻度がさらに少なくなってしまいそうです。や、まあ Wiki に書いてることをを公開すればいいんですけど。。。まぁいいや。そこで、日記書くネタのために、Python の Mechanize で遊んでみました。
まず、インストール。
sudo portinstall -P www/py-mechanize
ports にあったので、easy_install は使いませんでした。うーん、FreeBSDは楽でいい。
さて、、、Mechanize を使って何を書こうかと悩んでいたところ、そういえば、昔、しょこたんブログの画像を一気にダウンロードするスクリプトがあったなあ、、、と思い出し、ちょっと検索してみたけど見つからず。ちょうどいいので、画像スクレイピングのスクリプトを書いてみることにした。
# -*- coding:euc-jp -*- import mechanize import urllib2 import time import datetime def download_image(url): filename = url.split("/")[-1] dat = urllib2.urlopen(url) open(filename,"wb").write(dat.read()) print "[%s] %s was downloaded." % (datetime.datetime.now().strftime("%H:%M:%S"), filename) time.sleep(1) br = mechanize.Browser() br.open('http://blog.livedoor.jp/akanehotaru/archives/cat_736051.html') next_page = unicode('次のページへ', 'euc-jp').encode(br.encoding()) while True: for link in br.links(url_regex="image"): download_image(link.url) try: br.follow_link(text_regex=next_page) except: break
わたくしが愛読してるブログにある写真を、まとめてダウンロードしてくれるスクリプトです。あ、しょこたんとか言っといて、しょこたんじゃありません。あしからず。。。