Rubyでインターネットを巡回する本.
いちばん簡単なのだと,Wgetで再帰的にダウンロードしてみましょうとか,Anemoneっていうクローラ作るためのライブラリとか,ThreadやEventMachineで並列に動かすとか.
あとは,Rubyだからgemの便利グッズが紹介されていて,一番よかったのは,koalaっていうfacebookにアクセスするためのライブラリで,キラキラネームでまぶしい.
気になったのは,けっこうHTMLをXPathとかで取り出してスクレイピングしていることで,こういう方法だとしばらくすれば壊れそう.壊れたときに気付けるように結果もバリデーションしましょう,とか書いてあったけど,メンテナンスできるのか.それか,意外とマークアップ変わらなくて壊れないもの?
スクレイピングというと2007年くらいにPerlの人たちがCPANでYoutubeをダウンロードとかいって喜んでた印象がある.
この本は,2014年らしく,保存した内容はS3に置くと便利とか,SQSでクロールするURLのキューを作ろう,数十台で大規模クロールや,とか言ってて,最近っぽい感じだった.
昔は手元のプログラムでこうやったらできるっていう話が主だったけど,最近はAmazon便利グッズにうまく乗っかろうという雰囲気がある.Plaggerで通知送るときとか,昔は普通にメール送ってたけど,今Plagger作るとしたら,Amazonに投げたらなんか動く,みたいなほうが気楽そう,とか.
行儀よく運用することについても触れられていて,著作権への配慮とか,robots.txtとか,業務妨害にならないようにしようとか,こまごまと気をつけることがある.
クローラーはできるかぎり作らないほうがいいって書いてて,複雑な立場っていう感じがする.
Rubyでクローラー作る本クローラー作らないほうがいいって主張してる > 本書の目的と矛盾しますが、基本的な方針としてはクローラーはできるかぎり作らないのがよいでしょう。
— 趣味はマリンスポーツです (@hitode909) 2014, 12月 7
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (2件) を見る
追記
著者の方からリプライあった。寿命短いとのことなので、早く読みましょう。
@hitode909 出しておいて何ですが、実際のサイトを対象にしてもすぐに変わるので、本としての寿命は短いと思ってます。その辺の事情は、これを参照して頂ければと。 http://t.co/gC9WRarirI
— Takuro SASAKI (@dkfj) 2014, 12月 7