男子高校生いや中学生か。円グラフをパイチャート呼んだり、円周率πが2πで360度で、2πが一個で妙に納得したり。1/6 πとか美乳ですよね。とか。積分のデルタが密林でΔだとか。数学とか楽しめます。
そんな男子高校生に送る「おっぱい」
見たくてたまらない君たちに、とりあえず、飽きるまで見ることをおすすめする。飽きたら、現実を見ような。いろいろな意味で。
おっぱいをダウンロードする方法。
- rubyをインストールする。
- ツールをインストール
- スクリプトを動かす。
- ワクワクしながら待つ。
rubyのインストールは簡単。
Macなら初めから入ってるよ。Macを買ったきみはついてる。
Windowsな君は。http://www.ruby-lang.org/en/downloads/ からダウンロードしてインストール。
rubyが実行できるようになると、いよいよ、プログラミングで魔法の時間だ。
スクリプトを動かす
ruby oppi.rb
oppi.rb
プログラミングの本体。
##リクエストを投げる。 require "rubygems" require "json" require 'mechanize' $app_id = "35A40D6D57F***********" $start = "http://api.bing.net/json.aspx" $offset = 0; $params ={ 'Appid' => $app_id, 'Version' =>'2.2', 'Markert' =>'ja-JP', 'Sources' =>'Image', 'Image.Count'=> 50, 'Image.Offset'=> $offset, 'Adult' => 'off', 'Query'=> 'おっぱい' } $mech = Mechanize.new $mech.get $start, $params $ret = JSON.load($mech.page.body) $ret["SearchResponse"]["Image"]["Results"].each{|e| $mech.get e["MediaUrl"] $mage.page.save }
これでおっぱいがいっぱい。
うむ。それでは一気にダウンロード。
ダウンロードを複数起動するとあれなのでスレッドする。
一本ずつダウンロードを待ってられないのが男子中学生。
複数スレッドでのダウンロードのプログラムを参考に書いておきます。
*1
require "rubygems" require "json" require 'mechanize' require 'thread' $image_url_list = Queue.new $app_id = "35A40D6D57FEB804B1E1AAD*****************E2B" $start = "http://api.bing.net/json.aspx" $mech = Mechanize.new $offset = 0; $params ={ 'Appid' => $app_id, 'Version' =>'2.2', 'Markert' =>'ja-JP', 'Sources' =>'Image', 'Image.Count'=> 50, 'Image.Offset'=> $offset, 'Adult' => 'off', 'Query'=> 'おっぱい' } def oppi_search(n=1000) Thread.new{ $mech.get($start, $params) #1000ページまで行こうか。 n.times{|i| #1ページからNページまでの遷移 $offset = i * $params["Image.Count"] $params["Image.Offset"] = $offset $mech.get $start, $params # ret = JSON.load($mech.page.body) pp ret["SearchResponse"]["Image"]["Results"].size ret["SearchResponse"]["Image"]["Results"].each{|e| #ダウンロードリストに追加する。 $image_url_list.push( { "img_title" => e["Title"], "img_url" => e["MediaUrl"]}) } } } end #ダウンロードするだけの娘 def download_thread t = Thread.new{ m = Mechanize.new m.max_history = 1 loop { begin task = $image_url_list.pop file = m.get task["img_url"] #拡張子判別 ext_name = file["content-type"].split(%r"/").last file.save( task["img_title"]+".#{ext_name}" ) rescue => e puts e m = Mechanize.new #エラーがでたらMechanize再起動 end } } return t end ##Bing検索スレッド t = oppi_search() workers = [] ##画像のダウンロードは5スレッドで。 workers << download_thread() workers << download_thread() workers << download_thread() workers << download_thread() workers << download_thread() #無限ループ workers.first.join
元ネタ。
http://d.hatena.ne.jp/heavenshell/20120304/1330869594
http://yusukebe.com/archives/20120229/072808.html
励めよ。うむ
他の蒐集も、基本は同じです。検索先がBing→ニコニコになったり、取得対象がJPG→FLVになるだけです。がんばってね。
rubyを動かしたい人は
初めてのプログラミング をかいなさい。