ほつた@はてな

ほつたが技術的な事や個人的な出来事を中心に投稿します。

初心者でも簡単!RubyでSeleniumスクレイピングや操作の自動化をしてみよう(パート1)

いつも自分はありとあらゆるWebサイトの操作を自動化する為にSeleniumを愛用してる。
例えば、GoogleSeleniumと自動で検索したり検索結果をテキストファイルに出力したり。
個人的に書いている言語はRubyなのでそれをベースに紹介する。
ちなみにJavaの方が色々出来るらしい。
実践 Selenium WebDriver

実践 Selenium WebDriver

 
上のようなちゃんとした本が出てるくらいだからJavaを使えばもっといいことができるに違いないと思う。
個人的にJavaは書きたくないランキング一位で、自分には技術力が全くなくSeleniumBuilderのエクスポートしでその先何処をどういじればいいか分からないし試した事がない。
そんないつも愛用してるSeleniumについて詳しく紹介したいと思う。
ちなみにSeleniumのコードを書く時に便利なSeleniumBuilderについても書いてみようと思う。
 
まず、初心者の人はRubyのインストールから。
rubyinstallerをダウンロードしてインストールしてしまおう。

RubyInstaller for Windows

View post on imgur.com
imgur.com

おすすめのバージョンは2.0だ。
(2.0で何が悪い。)
2.0以外をインストールして下に書くサンプルが動きませんとか言われても知らないからね!
関連付け等のチェックは忘れずに3箇所フルでチェックしておこう。
ちなみにmacは知らないが適当にやれば似たような流れで出来ると思う。
適当にググって欲しい。
というかMacには元からRubyがインストールされているから。
 
インストールが終わったらcmdとメニューなどで検索してコマンドプロンプトを立ち上げよう。
で、SeleniumWebDriverをGemインストールしておこう。
 

gem install selenium-webdriver

コマンドプロンプトに直接コピペしよう。
 
(いつもゲムと呼んでしまうのだがジェムと呼ぶらしい。恥ずかしい思いをしないように…。)
ここで初心者の人はゲムって何なのとか質問が飛び交う。
あーあ自分も昔そんな感じだった。
そんなのに答えてたらきりがないのでとにかく詳しく知りたいならググって欲しい。
まあググってもRubyのるの字も聞いたことが無い人はワケワカランという人が多数だろう。
いつかわかるから心配しないでまずは慣れよう。
 
おっと本題からずれてしまった。
 
SeleniumWebDriverがインストールできたら早速自動操作してみたいな。
おっと待った。
早く狐とチョロメをインストールするんだ。

※最新版Firefoxでは上手く動作しないので37.02のFirefoxポータブルを活用 qiita.com

↓FirefoxPortable_37.0.2_Japanese.paf.exe (43,531,512 バイト/MD5: 8ba528c3eee1bed1fadaad5b9d4a4b6c)のダウンロードが開始されます。


osdn.jp

IEはゴミブラウザだと思ってるので動作するように解説しない。
管理者権限がないだって?
大丈夫。管理者権限が無くてもインストール出来た自分がいるから。
 
で、狐とチョロメのインストールが完了したら早速自動化サンプルを動かしてみよう。
いやーやっぱりサンプルを書くのが面倒なので各自オリジナルサンプルを作ってもらおうか。
SeleniumBuilderというものをインストールするんだ。

Selenium Builder - The next evolution

 

インストールが完了したらSelenium2を選択で記録開始しよう。
適当に「あ」など検索してエクスポート。

www.google.co.jp

 適当な場所に保存してダブルクリックで実行。
ちゃんと動いたよね?

※未検証ですが最新版Firefoxでは動作しない可能性があります。
諦めも大切です。

 
ん?それは狐のサンプルだって?
大好きなチョロメはどうやったら立ち上げられるんだよ。
 
分かった分かった。慌てるなって。
チョロメを立ち上げる為の修正箇所を下に書くからやってみ。
 

wd = Selenium::WebDriver.for :firefox

wd = Selenium::WebDriver.for :chrome

へ変更。

 
立ち上がらないだって?
エラー吐いてしまうだって?
だから言ったでしょ。
簡単にチョロメは立ち上がらないと。
(言ってない。)
 
パート2へ続く。

hotuta.hatenablog.com