でぃするだいありー?

そんな気はないんだれど、でぃすっちゃってる。 でぃすでれ?

読物 『Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例』

当方、Rubyというものを全く知らず、本書に挑んだ。レベルでいえば0なカンジ。
実践はRaspi3、Raspbianで行った。

本書を読み進めるにあたり、先にPythonを学び、Pythonによるクローリングを学んでいたため、「Rubyという言語」と「Rubyによるクローリング技術」を分けてサンプルコードを識別できるようになっていたのが大きい。
とはいえ、クローリングによってプログラミング言語を学ぶことはあまりお勧めできない。正規表現をおまじないとみなせない方には鬼門であろう。

Rubyの諸作法はわりとすぐになれたが、難物は環境構築である。バージョンごとに環境を分けてくれる仕組みがあるので対処は比較的容易ではあるが、2014/08/22刊行の書籍に記されていることは2017/02の時点では再現できない場合がある。

その原因の一つには、取得対象の内容が変更されてしまったことによる。
クローリングという技術が求める取得対象とはすなわちWebサイトであるが、例えばAmazonなどもページの記述に変化があったようで、本書のサンプルコードがそのままでは動かないことがある。

別の原因としては、Rubyのバージョンによる挙動の違いがある。
別件でインストールしていたRubyのバージョンでは動かないサンプルがあり、インストールできないライブラリがあった。ログを吐いてくれるのでそれを参考に対処できるが、本題すなわち本書の内容を追うことからはそれまくる。

まとめると。

Rubyに知見を持つ方がクローリングの技術を学ぶためには良書であろう。

Ruby初心者でクローリングに興味を覚えたからついでにRubyを習得してやろうという意気込みの方には条件付きで良書である。先にも述べたが、本書に記載されている情報が古いため、一気呵成な読習とはいきがたいからだ。
その例をあげるならば。本書のサンプルコードがデータの取得対象としているWebサイトのHTML構成が変わってしまっていること。Google APIの使用方法が変更され、本書の内容とは異なっていること。Rubyの環境構築に多少の知見が必要であること。capybara-webkitのインストールが一日半たっても終わらない(結局、gem install capybara-webkitの実行については経過がプロンプトに表示されないまま二日が経過した。qtをインストールしなおして再度実行したら数分で終わったorz)こと、など。

プログラミング言語にこだわらないならば、 『Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド』の方が情報の鮮度的におすすめである。
おそらく本書を参考にしたのであろう、構成内容は似ており、本書で得られるスクレイピング的知見は得られると思われる。


以下蛇足。
Pythonの習得レベルを2、Rubyの習得レベルを1とする者が両者を比較すると、PythonよりRubyの方が書きやすいような気がするが、実行はPythonの方が早くて、総合的にPythonの方が好ましいという印象である。
クローリングについては、どちらがより優れているという印象はない。