BeautifulSoupで画像をダウンロードするモジュールかいたよ【追記あり】
こんばんは。Aliceです。
先日、Twitterでお世話になってる@l0utusさんに、HTMLをスクレイピングするモジュールとしてBeautifulSoupというものを教えてもらいました。公式サイトはこちらです。
このモジュール、いじればいじるほど面白くて、昨日、今日といじりまくってました。
それで今日、昔に使った「WEBサイトに貼ってある画像をダウンロードするスクリプト」をこれで書いてみようとおもって、書いてみました。
ですが、今、このモジュールの弱点に気づきました;;
このモジュールは、はっきりいって2chまとめサイトのような所で貼ってある画像をダウンロードするものです。なので、直接imgタグで書いてある画像はダウンロードできません。上記のようなところでは、たいてい大きな画像をサムネイルでリンクさせている場合が多いので、それ用に書いてしまいました。
もし要望があったら直接imgタグでかかれてるsrc部分をダウンロードするモジュールも書いてみます。
モジュールの説明
それでは、モジュールの説明します。
基本的に、
でできます。[directory]の場所にダウンロードします。
>>> python getimg.py [url] [directory]
ためにし、
http://burusoku-vip.com/archives/1222531.html
このサイトでやってみましょう。
このようにコマンドを打ち込みます。
そうすると、
このように、サイトに貼ってあるリンクを、画像のURLだけ抽出してダウンロードしてくれます。
Finderでみてみると、
このようにちゃんとダウンロードできています。(なんで変更日が2月なのかはわかりません)
基本的に、画像の拡張子としては.jpgと.pngと.bmpだけを抽出してます。なのでアイコン等に使われるgif等はダウンロードしません。
モジュールダウンロード
モジュールは、当然ながらBeautifulSoupがないと動きません。
もし、easy_installがあるなら
でいけると思います。ない人は、公式サイトからコードをもってきてsetup.pyとかうごかせばいけると思います。(モジュールをインストールするプログラムも書きました!追記を参照してください!)
$ sudo easy_install BeautifulSoup
あと、冒頭にドキュメントとしてCopyrightsとかUsageとか書いてますけど、英語が不安です。(滝汗)
「大学生になってこの程度の文しかかけないのか!!!」なんて言わないでください。
ダウンロードはこちら。▼
http://www1.axfc.net/uploader/Sc/so/179159
パスワードは「python」です。
よろしければ、コメント欄から使った感想、エラー情報、アドバイスなどをよろしくお願いします。
以上、Aliceでした!
追記
初心者の方のために、BeautifulSoupのモジュールをインストールするプログラムを書きました。両方一緒にzipにしたので、初心者の方はダウンロードして下さい。▼
http://www1.axfc.net/uploader/Sc/so/179263.zip
パスワードは↑のと同じ、pythonです。
ダウンロード方法(Windows以外)
まず、上のサイトにいってgetimg.zipをダウンロード&解凍してください。その後、
と打ってください。sudoが肝です。
$ cd getimg/
$ sudo sh install.sh
このコマンドを打った後、Password:と表示されるので、自分がOSをインストールした時につけたパスワードを入力してください。
そうしたら、もうBeautifulSoupがインストールされてるので、その場からgetimg.pyを動かしてください。