エンジニアのはしくれ

システム開発、ものづくり、etc…

書籍「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」のご紹介

はじめに

クジラ飛行机さんの著書「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」を読んだのでご紹介します。

読んだきっかけは、スクレイピングするサービスを作りたいと思っていたときに、「なぜ、あなたの仕事は終わらないのか」で有名な中島聡さんがメルマガで「Firebaseいいよ」的なことをおっしゃっていて、「Node.jsはよく分からないけど、そのFirebaseでもサポートされていたし、なんか人気もありそうだし、これでいこう」となったからです。

firebase.google.com

本書について

本書の章立てと構成割合は以下の通りとなっています。

  ページ数 構成割合
第1章 開発環境の準備 32 8%
第2章 Web データの収集 42 11%
第3章 ログインの必要なWebサイトをクロールする 46 12%
第4章 データの整形と保存 80 20%
第5章 形態素解析で日本語を扱う 28 7%
第6章 クローラーのためのデータソース 62 16%
第7章 データの分類と予測と機械学習 64 16%
第8章 データの視覚化と応用 46 12%
合計 400 100%

Amazonの「試し読み」で詳細な目次が見られるので、ご自身が知りたい内容が載っているかはそちらを確認してみてください。

2015/9に出版されて少し時間も経っており、中古本だと1,000円以下で買えそうですので、気になれば買った方が早いかもしれません。

読んだ感想

私の感想としては、関連する内容や技術/方法を網羅的に俯瞰できてよかったです。こういう類の本は、以下のような悩みを解決してくれると思っています。

  • やればできそうだけど、リアルに実現できるんだろうか
  • 実現はできそうだけど、果たしてそれが効率的な方法なのか
  • 他のみんなはどうやっているんだろう

サンプルのコード等はやや古い内容があるかもしれませんが、そこはWebで適宜調べながら試してみて、上手くできたらきっと嬉しいですよね😊

直近で役に立った箇所

  • 第2章 Web データの収集-HTMLの解析(リンクと画像の抽出)(P53~)
    →スクレイピング、「cheerio-httpcli」モジュール
    →やりたいことが10行程度のコードでできました。スゴい!
  • 第2章 Web データの収集-定期的にダウンロードする(P78~)

今後役に立ちそうな箇所

  • 第3章 ログインの必要なWebサイトをクロールする(P90~)
    →ログインが必要なWebサイトってスクレイピングできるの?と思うことはないでしょうか。
  • 第6章 クローラーのためのデータソース(P244~)
    →TwitterやAmazon等のAPIの使い方など
  • 第8章 データの視覚化と応用(P370~)
    →Google Chartsでグラフ作成など。ここら辺は今だともっと人気の方法がありそうですが

トータルでは本書の半分程度しか活用できなそうです(笑)