「とりあえずSelenium」のときはChromeを使ったほうが楽かもしれない
2016 年 7 月 19 日 火曜日 by 山平スクレイピングなど、とりあえずSeleniumで結果を確認しながら作りこみたい場合、利用するブラウザはFirefoxよりもChromeのほうが、余計な手間がかからなくて良いかもしれない、とおもった出来事があったので備忘録として残します。
スクレイピングなど、とりあえずSeleniumで結果を確認しながら作りこみたい場合、利用するブラウザはFirefoxよりもChromeのほうが、余計な手間がかからなくて良いかもしれない、とおもった出来事があったので備忘録として残します。
タイトルそのままですが、最近Rakeを使ってみて、勘所を残しておきたいと思います。
Rake とは
Rake は Make によく似た機能を持つ Ruby で書かれたシンプルなビルドツールです。
Rake は以下のような特徴を持っています。
- Rakefile (Rake における Makefile) は標準的な Ruby の文法で書くことができます。 XML ファイルを編集する必要はありませんし、Makefile の風変わりな文法 (タブだっけ?スペースだっけ?) に頭を悩ませる必要もありません。
- ユーザは必須条件をタスクに指定できます。
- Rake は暗黙のタスクを合成することをサポートしています。
- 配列のように振る舞うフレキシブルな FileList メソッドがあります。 FileList はファイル名やパス名を扱うのに便利です。
- Rakefile をより簡単に作成するためにこのライブラリにはいくつかのタスクが同梱されています。
Seleniumでブラウザを使った自動テストは便利ですが、GUIがシビアなWebアプリケーションの実行は気を使います。
たまたまマウスカーソルがSelenium実行中のブラウザの上に乗ってしまったことで、onMouseOver/onMouseOut等のイベントが走って、自動テストがエラーになってしまい、テストのやり直しに…なんてことが、私はありました。
ブラウザの自動テストといえばSeleniumです。
要はブラウザを操作するライブラリ(WebDriver)なので、ブラウザを使った自動操作全般に使うことができてとても使い勝手の良いツールだったりします。
先日、とあるツールを作っている途中で気づいたのですが、Seleniumってテキストノードを取得することができないんでしょうか?
前回、Jekyll(Octopress)の記事生成時に、記事用のディレクトリと、画像用のディレクトリを作成しました。
折角、画像用のディレクトリを作成しても、パスの指定までは面倒見てくれないので、あまり便利になった実感が沸きません。
そこで今回は、画像のパスを勝手に指定してくれるように手を加えていきます。
それなりにイケてる静的サイトが簡単に作れるJekyllはとても便利です。
さらにちょっと面倒な下準備まで済ませてくれているOctpressが私のお気に入りです
Jekyllにはちょっとだけ気に入らないところがあって、記事を1つのディレクトリ内に延々と書き溜めていかなければならない点でした。
過去にテキストベースでCMSを自作した際に、同じ問題でとても苦労したことがあったからです。
ところがある日以下のような記事を見かけました。
なんと。。
ちゃんとソースを読まないとダメですね。。
最近…でもないですが、Ruby界隈ではBundlerを使って環境を保証するのがトレンドのようです。
Rubyでスクレイピングするなら、Nokogiriが定番です。
概ねDOMに忠実な実装でありながら、rubyらしく書きたいポイントは押さえている心憎いライブラリです。
ところが先日、Nokogiriを使ってWebページをスクレイピングしていた時に、上手くノードが取得できない場面に遭遇しましたので、備忘録としてここに残します。
自動テストで有名なSeleniumですが、核になる技術はブラウザを自動運転するWebDriverです。
これを使えば、ブラウザが必要な操作も自動化できてしまいます。
RubyとSeleniumは非常に相性が良いと感じます。