Panda Noir

JavaScript の限界を究めるブログです。

プログラムが書けるとグラビア画像収集が捗るぞ!

この記事は東北大学 計算機科学研究会 Advent Calendarの7日目の記事です。

ほぼネタです。しかもシェルスクリプトなのでプログラムかと言われると微妙ですね。プログラミング初心者に「こんなこともできるんだぜ!」と示したかっただけなので許してください。

まずはコード

#!bin/sh
mkdir -p img
cd img
curl http://iam-publicidad.org/article/%E3%82%84%E3%81%A3%E3%81%B1%E3%82%8A%E5%88%A5%E6%A0%BC%EF%BC%81%E6%96%B0%E5%9E%A3%E7%B5%90%E8%A1%A3%E3%81%AE%E7%BE%8E%E4%BA%BA%E3%81%99%E3%81%8E%E3%82%8B%E9%AB%98%E7%94%BB%E8%B3%AA%E3%81%AA%E7%94%BB |
grep "<img" |
grep -e jpg -e png |
sed -E "s/^.+src=\"([^\"]+)\".+\$/\1/g" |
while read -r url
do
    curl -O "$url"
done

curlの直後のURLが指すページの画像を全部収集するプログラムです。上のプログラムのURLは新垣結衣の画像が210枚載っているサイトです。

使い方

  1. デスクトップに「グラビア画像」というフォルダを作る
  2. 上のコードをgazou-atsume.shとして「グラビア画像」フォルダに保存
  3. 「ターミナル」または「端末」というアプリを開く
  4. cd ~/Desktop; sh gazou-atsume.shと入力してエンター

実行するとグラビア画像内にガッキーの画像が集まります。すみませんがWindowsの方は実行できません。

解説

まず、mkdir -p imgcd imgで「imgというフォルダを作成して移動」しています。その後、curl http://〜の部分でそのページの情報をゲットします。そのページ情報に対してgrep src|grep -e jpg -e png | sed -E "s/^.+src=\"([^\"]+)\".+\$/\1/g"という処理を施して画像URLだけ抜き出します。解説しようとすると時間が足りなくなるので勘弁してください。気になる人は「HTML」「imgタグ src」「jpg png 画像」「sed 置換」あたりで調べてみてください。

さて、ここまでで画像URLのリストが完成しました。それぞれ画像URLに対してcurl -O "$url"という部分でダウンロードをしています。

つまり

  1. imgフォルダを作成して移動
  2. URL先のページ情報を取得
  3. ページ情報から画像のURLだけを抽出
  4. 各URLを使って画像をダウンロード

という流れです。簡単ですね。

終わりに

「プログラミングができるとエロ画像収集が捗るぞ」と義務教育で教えたら生徒(特に男子)のやる気が爆発するんじゃないかな?と思いつつ書いてみました。こんなくだらないことも自動化できるプログラミングをみんなも学ぼう!