Future Insight このページをアンテナに追加 RSSフィード

2008-01-12

グラビアアイドル画像2800枚をアルバム形式にしてみた

実際に取得した画像がどんなことになっているか把握したかったので、画像2100枚をHTMLで出力してみました。75x75の画像を読み込んでおり、画像をクリックするとlightboxして元のサイズの画像にアクセスします。下のtitleをクリックするとFlickrのページに飛びます。軽くなるように気をつけましたが、それでも結構CPUパワーを使うので、遅いPCで開くときは気をつけてください。

こうやって眺めてみるとFlickrにあがりやすいアイドルとあがりにくいアイドルというのがいるようです。小倉優子は500枚取得しても、まだまだたくさん画像があるようでした。さすがグラビアを終わらせたアイドルです。この辺りの考察はまた後で行いたいと思います。

[追記]アイドルの名前のスペルミス、画像を取得できないアイドルの整理し、データを取り直しました。今はこんな感じです。

Aibu Saki, 相武紗季
Aizawa Hitomi, 相澤仁美
Akiyama Rina, 秋山莉奈
Ando Sayaka, 安藤沙耶香
Anzu Sayuri, 杏さゆり
Ayase Haruka, 綾瀬はるか
Hamada Shoko, 浜田翔子
Hara Fumina, 原史奈
Hoshino Aki, ほしのあき
Irie Saaya, 紗綾
Isoyama Sayaka, 磯山さやか
Iwasa Mayuko, 岩佐真悠子
Kawamura Yukie, 川村ゆきえ
Kazuki Saya, 和希沙也
Kiguchi Aya, 木口亜矢
Kinoshita Yukina, 木下優樹菜
Kosaka Yuka, 小阪由佳
Komatsu Ayaka, 小松綾夏
Kumada Yoko, 熊田曜子
Minami Akina, 南明奈
Mitsuya Yoko, 三津谷葉子
Morishita Chisato, 森下千里
Morishita Yuri, 森下悠里
Nagasaki Rina, 長崎莉奈
Nagasawa Masami, 長澤まさみ
Nakagawa Shoko, 中川翔子
Nakamura Miu, 仲村みう
Natsukawa Jun, 夏川純
Natsume Rio, 夏目理緒
Ogura Yuko, 小倉優子
Okubo Mariko, 大久保麻梨子
Sato Hiroko, 佐藤寛子
Sawajiri Erika, 沢尻エリカ
Shiratori Yuriko, 白鳥百合子
Sugimoto Yumi, 杉本有美
Suzuki Akane, 鈴木茜
Takizawa Nonami, 滝沢乃南
Toda Erika, 戸田恵梨香
Tokito Ami, 時東あみ
Tsugihara Kana, 次原かな
Wakatsuki Chinatsu, 若槻千夏
Yabuki Haruna, 矢吹春奈
Yamamoto Azusa, 山本梓
Yamazaki Mami, 山崎真実
Yasu Megumi, 安めぐみ
Yasuda Misako, 安田美沙子
Yuki Maomi, 優木まおみ

以下が上のアルバムに掲載されている写真のURLのリストです。

Flickrから2000枚の品質の高いグラビアアイドル画像を取得してみた

今、ちょっと作成を考えているWebサービスがあって、その練習のためにFlickrから画像を取得するスクリプトを書きました。RubyPerlをお使いの皆様には申し訳ありませんがPythonです。PerlならPlaggerというのを使うのでしょうか?ちょっと使ったことないのでわかりませんが。

# -*- coding: utf-8; -*-

import sys
import urllib
import time

def search_photos( text ):
    args = { 'method'  : 'flickr.photos.search',
             'api_key' : 'ここに自分のAPI_KEYを入れてください!',             
             'per_page': '500',
             'sort'    : 'date-posted-desc',
             'format'  : 'json',
             'nojsoncallback' : 1,
             'text'    : text,
             'extras'  : "date_upload",
        }
    url = "http://api.flickr.com/services/rest/?%s"%(urllib.urlencode(args) )
    #print url
    return eval( urllib.urlopen(url).readline() )
    
def create_photo_url( photo ):
    template = "http://farm%s.static.flickr.com/%s/%s_%s.jpg"
    time_string = time.strptime( time.ctime( int( photo["dateupload"] ) ) )
    return template%(photo["farm"], photo["server"],
                     photo["id"], photo["secret"]), photo["dateupload"], time_string

def create_page_url( photo ):
    template = "http://www.flickr.com/photos/%s/%s"
    time_string = time.strptime( time.ctime( int( photo["dateupload"] ) ) )
    return template%(photo["owner"], photo["id"]), time_string

def do_file( filename ):    
    file_obj = open( filename, 'r')
    line_list = file_obj.readlines()
    file_obj.close()
    idol_list = []
    for i in line_list:
        idol_list.append( [ n.strip() for n in i.split(",") ] )

    for i in idol_list:
        flickr_photos = search_photos( i[0] )
        for i in flickr_photos["photos"]["photo"]:
            print create_photo_url( i )[0]    

def main(*argv):
    from getopt import getopt, GetoptError
    try:
        (opts, args) = getopt(argv[1:], 'f:', ['file'])

    except GetoptError, e:
        return 1

    for o, a in opts:
        if o in ('-f', '--file'):
            do_file(a)
            return 0

if __name__ == '__main__':
    sys.exit(main(*sys.argv))

以下のように実行してください。写真のURLを標準出力に出力してくれます。

python flickr.py -f filename

filenameには改行で区切った検索をおこないたいクエリを改行区切りで記載したテキストを指定します。

まぁ、ここまでならちょっとPythonをかじったことがあるひとならサクっと書けると思うのですが、何をしたかったかと言うと、Flickrにどれくらいグラビアアイドルの画像がアップされているかを調べたかったのです。理由は聞かないでください。

とりあえず、グラビアアイドルのリストを作成します。個人的に気に入っているグラビアアイドルを50人ほどピックアップしてみました。僕のtumblr.であるdrill equipmentではおなじみの面子ですね。

Aibu Saki, 相武紗季
Aizawa Hitomi, 相澤仁美
Akiyama Rina, 秋山莉奈
Ando Sayaka, 安藤沙耶香
Anzu Sayuri, 杏さゆり
Ayase Haruka, 綾瀬はるか
Hamada Shoko, 浜田翔子
Hara Fumina, 原史奈
Hoshino Aki, ほしのあき
Irie Saaya, 紗綾
Isoyama Sayaka, 磯山さやか
Iwasa Mayuko, 岩佐真悠子
Kawamura Yukie, 川村ゆきえ
Kazuki Saya, 和希沙也
Kiguchi Aya, 木口亜矢
Kinoshita Yukina, 木下優樹菜
Kosaka Yuka, 小阪由佳
Komatsu Ayaka, 小松綾夏
Kumada Yoko, 熊田曜子
Minami Akina, 南明奈
Mitsuya Yoko, 三津谷葉子
Morishita Chisato, 森下千里
Morishita Yuri, 森下悠里
Nagasaki Rina, 長崎莉奈
Nagasawa Masami, 長澤まさみ
Nakagawa Shoko, 中川翔子
Nakamura Miu, 仲村みう
Natsukawa Jun, 夏川純
Natsume Rio, 夏目理緒
Ogura Yuko, 小倉優子
Okubo Mariko, 大久保麻梨子
Sato Hiroko, 佐藤寛子
Sawajiri Erika, 沢尻エリカ
Shiratori Yuriko, 白鳥百合子
Sugimoto Yumi, 杉本有美
Suzuki Akane, 鈴木茜
Takizawa Nonami, 滝沢乃南
Toda Erika, 戸田恵梨香
Tokito Ami, 時東あみ
Tsugihara Kana, 次原かな
Wakatsuki Chinatsu, 若槻千夏
Yabuki Haruna, 矢吹春奈
Yamamoto Azusa, 山本梓
Yamazaki Mami, 山崎真実
Yasu Megumi, 安めぐみ
Yasuda Misako, 安田美沙子
Yuki Maomi, 優木まおみ

上のリストをUTF-8のテキストとして保存します。(ここではidols.txtとして保存します。)そして、以下のコマンドを実行します。

python flickr.py -f idols.txt

そうすると、およそ2100枚くらいのグラビアアイドルの画像のURLを標準出力に出力します。

取得した写真をざーっとながめてみましたが、Flickrは個人が気に入った画像しかアップされないのでかなり品質が高いです。実は、コード書くよりグラビアアイドルを選ぶ方が疲れたのは内緒です。ただ、特にエロというわけではない僕が、Erogeekの仲間入りしてしまうのではないかということが心配です。> yusukebe

では、開発中のWebサービスにご期待ください。ある程度完成した時点で公開したいと思います。個人的には上のリストをダウンロードしてiPod touchに入れておくのが一番楽しいではないかと思っています。

[追記]このエントリーにアルバム化したHTML版を追加しました。

HTML版はこいつです。

kawatankawatan 2008/01/11 21:01 drill equipment、まさかの自動化!?

kwaizukwaizu 2008/01/11 21:02 > 特にエロというわけではない僕が、
なにをいまさら。

gamellagamella 2008/01/11 21:06 > kawatan
やはりばれましたか。まさかの自動化です。
> kwaizu
そこはスルーしてくれ。

加藤加藤 2008/01/11 22:51 本題と違うけど、
はてなってソースコードに勝手に色つけてくれるの?
ちょっと気になった。

gamellagamella 2008/01/12 00:21 スーパープレ記法でプログラミング言語を選択すると、あとは勝手に色着けてくれます。便利ですよね、この機能。

umitanukiumitanuki 2008/01/12 00:43 ご無沙汰してます。
> return eval( urllib.urlopen(url).readline() )
の一文に萌えた。萌え尽きた。真っ白になった。
PyObj = eval(JSON)って。常識??

グラビアのチョイスがナイスです。
2008年erogeek元年ってことで。

gamellagamella 2008/01/12 01:05 umitanukiさん、どもです。JSONはPythonのdictと記法が全く同じなのでeval()してdictにしています。たぶん、常識はsimplejson.loads()の方で、セキュリティ的にこっちなのですが、simplejsonモジュールが標準で入ってないのでeval()を使ってます。チョイスをお褒めいただきありがとうございます(笑)

umitanukiumitanuki 2008/01/12 15:49 dictどころかすべておんなじですね。考えてみりゃ。

というかgamellaさん俺の正体認識してる??日記→プロフィール追ってくだされ。

gamellagamella 2008/01/12 16:11 おー、プロフィールみて気づいたよ。最近会社でコード書いてなくて、久しぶりに書いてたら楽しかったわ。あんまり使ってないみたいだけどtwitterも登録してみました。今度、一度飯でもくおうぜ。