Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (1件) を見る
発売時はえらいニッチな本が出るもんだなと思いましたが、結構売れているようです。 Amazonのプログラミングカテゴリでも上位ですし、rubyでは1位です。すごい。
内容としては
anemone、nokogiri解説、各種scrapeのsampleコードといった感じ。
特にnokogiriのNodeSet、Node、Elementと沢山あるメソッドの説明がちゃんとされているのは良いです。sampleコードは、anemone、nokogiri、seleniumによる方法および便利なgemを使った方法が掲載されています。結構知らないgemがありました。scrape対象もいいなと思いました。後半に出てくるsampleでレインズ(不動産情報)なんかは使えそう。こういう知見がひろまったところはプラスでした。
あと、あまりselenium使ったコードは書いていないので(最近だとcasperJSで書いたりします)参考になりました。
対象者は
webのデータを取得したいけど、どうしていいか分からない人向けでしょうか。rubyの基本的な構文、正規表現、nokogiri(anemone)も分かりますし、sampleコードを参考にすれば、大体事足りると思います。全体的に割と丁寧で対象者を意識してwindowsも大体サポートしているようです。
ただ
コードはあまりきれいではないです。プロダクトコードとして書くとオノが飛んでくるレベル。でも肝はそこではないので、まぁ問題ないです。sampleコードの数は結構あり、大体ちゃんと動きます(一部、対象のWebのhtml構成が変更されているところも既にあったりします。今後どんどん動かなくなっていくと思われるので、この辺が残念。)。
他
・anemone今回初めて触りましたが、結構機能が豊富です。ただメンテされておらず、本書でも文字コードの対応として直接gemに手を入れていたりします。(githubでforkすればいいのにと思いました)
・autopagerize を使ってscrapeするところはなるほどなと思いました。
・robotex
・URI.encode を利用しているがobsoluteです (参考:rubyでurlのencode - rochefort's blog)
・Wikipediaに対するクローリングは明示的に禁止されている。へー
・フォントの問題ですが、0(ゼロ) と O(オー)が判別しにくいです。