或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 (大型本)のレビューのレビュー #Ruby #Amazon

あ、まずは著者のid:dkfjさんにお礼を申し上げます。

このブログで紹介したところ1冊購入して下さった方がいらっしゃいました。アフィリエイト報酬ありがたく頂戴します。この調子でどんどん売れて欲しいですね。
f:id:oneshotlife_tom:20141101173532p:plain

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例のレビューにちょっと気にくわないレビューがあったのでそのレビューをさせていただこうかなと。

2004年にオライリーから出版された『Spidering Hacks』(こちらではPerlが使用されていた)を読んで、ある程度クローリングやスクレイピングの知識や技術は習得済だったが、最新のトピックを知りたい、最新の技術に対応したいという動機から、この本を手にった。しかしそういった動機から手にとるとちょっとつらい本である。初心者に一から説明する体裁になっており、記述は丁寧ではあるが、言い方を変えれば冗長である。記述やレイアウトにも工夫がないため、あくまで通読を前提にしたつくりになっている。経験者は飛ばし読みをしたい記述も多いはずだが、それがしにくい。どこに必要な情報があるかわかりにくい。またRubyおよびRubyの特定のライブラリに依存した記述も多い。他言語の使用者で、他言語にも応用がきく記述をさがしている読者からすると、そこもノイズになってしまう。クローリングを題材にこれからRubyを学ぼうという人、あるいはいまRubyを学んでいてそれを実地に使ってみたいという人にはいい本かもしれない。しかし編集者の仕事次第では、もっと幅広い読者にとって読みやすい本になったはずである。まるで学術書のような大仰なタイトルも、この本の内容には相応しくない。なおAmazonの表示には大型本となっているが、普通のA5判サイズの本(月刊文藝春秋中央公論の大きさ)である。
Amazon.co.jp: Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例の muimuiさんのレビュー

Spidering既習者には「つらい」本か?

Spidering hacks―ウェブ情報ラクラク取得テクニック101選を既に読まれている方も少なく無いでしょう。私も持っていますし熟読しています。ただしこれは古い書籍です。新しいトピックを知りたいけれども、手頃な書籍が無いところにRubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例が出版されたという状況から購入してみようと思った方は多いはず。そういう方にとっても、得る者は少なくないかと思います。

ただし、Ruby使いかどうかによって評価は分かれかと思います。私はPython使いでRubyはあまり書いたことなかったので多少とっつき辛かった。Perl使いの方も同じような印象を持った方は少なくないかと。

そんな場合、やり方は二つある。自分の得意の言語に書き換えるか、Rubyで書くかのどちらかです。前者の場合、Rubyに特化した当書籍は「つらい」かもしれません。が、後者の場合は問題ないでしょう。Rubyで書かれたサンプルコードが秀逸なので、すぐに慣れるでしょう。

リファレンスとしてはどうか?

GoogleTwitterFacebookからのデータ収集、iTunes StoreGoogle Playのランキング情報、企業・株価情報・為替情報・金融指標の取得、SEOやマネジメントに役立つ情報の収集etc…

用途に分けて章立てもしてあるしリファレンスとしても使えるんじゃないか?と私は思う。ただし、導入部分は初心者向けでだいぶ詳細な説明がされてあるので、そこはリファレンスには向かないかなと。

もっとも、クローリングのリファレンスなんて、そんなウマーな書籍は無いはずですwあったら、是非購入したいわ。Spidering hacks―ウェブ情報ラクラク取得テクニック101選はリファレンスとしても非常に秀逸だが、何せ古い書籍。情報の古いリファレンスって、悲惨です・・・。

他言語を使っている人にとってはどうか?

レビューでも言及されているように、当書籍はRubyの特定のライブラリに依存した作りになっています。それが良いか悪いかはというと良いことだと私は思います。nokogiri,anemoneなどは、標準的なライブラリだしこれらを使わずに実装するなどそんな面倒臭いことはしてられない!Perl使いの人だってCPAN使わないでSpideringしろと言われたら辟易するでしょう?Python使いにとっても同様。スクリプト言語で何かを実装すると言う人は、既に発明されたツールを組み合わせて手っ取り早く動くプログラムを作りたいという人が多いはずなので、ライブラリを使うというのはごく自然なこと。マニアックなライブラリを使っているならまだしも、標準的なライブラリなら使わないほうがおかしい。

では、他言語を使っている人はどうすればよいのか?Perl使っている人は、CPANで似たようなモジュール探して下さい。Python使っているひともPyPIで似たようなライブラリ探して下さい。

あるいは、Rubyに鞍替えして下さい。私がそうしたように。。。

もっと幅広い読者に受け入れられる作りにするべきだったか?

いやいや、Amazonのランキングをご存知ないんでしょうかね?技術書でこんなに売れてるんだから、十分に幅広い読者に受け入れられたでしょう!

もちろん、言いたいことはわかります。Rubyに決め打ちしないで、もっと汎用的な技術でやればよかったんじゃないか?とかそういうことでしょう。

しかし、そうしたら統一性の無い書籍になってしまう。これさえ読めば、Rubyでクローリングしたい一通りのことが学習出来る。それこそが重要。PerlやらPHPやらPythonやらといろいろごちゃ混ぜにしている書籍だったら、私は購入しなかったでしょう。

私が望むのはクローラーの方法論ではなく、クローラーによって得られる情報そのものです。

言語にこだわりの無い人や、多言語主義者や、初心者にとってもそうでしょう。

なので、当書籍が、Pythonによるクローラー開発技法 巡回・解析機能の実装と21の運用例 (大型本)だったとしても同じ評価を与えられていたと思います。

大型本の割には小さくない?

ちょっと吹き出してしまいましたwww
洋書とか買ってみるといいですよ。大きさやら厚さが本当に統一性がない。それと比べれば、日本の本は規格化されていると思います。文庫、新書、選書とかね。それ以上の大きさの本は、単行本だったり、大型本とカテゴライズされるようですよ。ブックオフでも、このくらいの大きさの書籍が大型本コーナーに置かれていることは多々あります。

技術書だから大きいと思ったというのはあなたの勘違いでしょwww

そもそも、Amazonにサイズの記載があるので読みましょうよ・・・。

商品パッケージの寸法: 21 x 14.8 x 2.8 cm

Lサイズだから大きいと思ったがサイズ小さいぞとクレームを言うクレーマーのようですね。