Ruby
rubygems
Nokogiri
scraping
Webスクレイピング

Rubyで画像収集を行う【1】検索条件の入力

More than 1 year has passed since last update.

はじめに

ウェブスクレイピングの勉強がてらRubyで画像を収集するプログラムを書いた。
が、数カ月立って、自分でも中身を忘れたので、備忘録として解読していく。
rubyのかなり基礎的な部分も一応触れる。
全体像としてはリクエストクエリをいじって特定の検索エンジンで検索、
帰ってきたHTMLから画像を抽出して保存する流れ。

注意事項

もともとの目的としては深層学習に用いるために一時保存、読ませたら削除だったので
著作権的にも問題ないはず。またサーバへのアクセス間隔はしっかり空けましょう。

【目次】

1:検索条件の入力 ←いまここ
2:検索結果の取得
3:画像の取得と保存
つづく

早速始めよう

必要なもの

  • Rubyの環境
  • ライブラリ

rubygenm
nokogiri
open-uri
cgi
kconv

正直ライブラリこんなに要らない気もするけど、require(インポートみたいなこと)に書いてあるので一応記載。

検索する条件を入力する

def in_keyword()
    puts("") #改行
    print "Input the Keyword for Search:" #検索文字列の入力を求める表示
    $keyword = gets.chop#入力させる
    $keyword = $keyword.toutf8 #文字コードの処理
    if $keyword=="" then #入力が空なら
        in_keyword(); #再度この関数を呼び出す
    end
    puts("") #改行

    #検索結果のページ数など必要な情報を同様に入力させる

    print "Start page:"
    $start = gets.chop
    puts("")
    print "End page:"
    $end = gets.chop
    puts("")

    #検索する文字列をURLエンコードする

    $escaped_keyword = CGI.escape($keyword)

    # 検索結果を開く
    i_search($start,$end);
end

コメント

ドルマーク($)が頭につく変数はグローバル変数と思えばいいかと。
今回はいくつかの関数に分けて実行を確認しながら進めたので、
細かいことは気にせずガバガバのグローバル変数で作った。

次回は検索結果を開くi_search()の中身をやります