自分でデータを集めてみよう

データ分析の大きな流れ

データを得てから分析するまでの流れは以下のようになります.
データを集めたあと,もしそのデータが膨大であったら,SQLなどのデータベースに保存します.そのあとに機械学習などで分析すると言うのが大きな流れです.
今回はデータを集める段階についてみていきたいと思います.

機械学習は与えられた膨大なデータから,学習して様々なシステムを作り出します.

さて,データと言うのはどこから生まれるのでしょうか?例えば,スマホゲームで遊んでいるユーザーのデータを企業が収集すれば膨大なデータが生まれますし,ネット上ではユーザーが様々なサービスを利用することで,ネットユーザーの情報が蓄積されていきます.今の時代むしろデータが多すぎて,そこら中に溢れていると言ってよいでしょう.

APIとスクレイピング

でも僕たち一般人がデータを集めることなんでできるの?

もちろんできますよ.APIを使えば簡単に集められるし,スクレイピングをすると,ウェブサイトのHTMLからデータを集めることが可能ですよ

APIと言う言葉はざっくり説明すると,ソフトウェアの機能を共有するシステムと言う意味です.なので,APIを使うことで,あるアプリケーションの機能の一部が使えるようになります.例えばTwitterにはTwitterAPIと言うものがありますが,それを使うことにより,ツイートのデータを簡単に集めることができます.

しかし全てのサイトやアプリケーションに必ずAPIがあるわけではありません.APIがないサイトのデータが欲しい場合はスクレイピングと言う技術を使ってデータを集めることができます.スクレイピング と言うのは,あるサイトのHTMLから欲しい情報のみを取得する技術です.HTMLからデータを抽出できるので,基本的にどんなサイトの情報でもデータ化することができます.

スクレイピングのデメリット

これだけ聞くと,スクレイピングは最強感がありますが,2つの大きなデメリットがあります.

まず1つ目は,スクレイピングを過度に行うと,サイトのサーバーの負荷を高めてしまう危険性があります.それによってシステムに障害を与えてしまった場合は処罰の対象になってしまいます.
2つ目は,各サイトのHTMLのコンテンツに大きく影響されるので,もしスクレイピングしているサイトのレイアウトが変わった場合は,スクレイピングのプログラムも変更しなければなりません.

最後に

APIがあるサイトであれば,APIを使えば良いのですが,ない場合はどうしてもスクレイピングが必要になってきます.データ収集のためにスクレイピングを使えるようになることは無駄にならないのではないかと思います.

APIとスクレイピングについて勉強したくなったら

個人的に,「Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド」がおすすめです.

スクレイピングが全く分からない初心者向けの本ですが,内容は濃く,スクレイピングについて深くまで掘り下げて説明しているので,スクレイピング初心者だけど,きっちり理解したい人には,ぴったりだと思います.

この一冊でスクレイピングに必要な知識は身につくと思います.スクレイピングだけでなくAPI(Twitter,Youtube)からのデータの取得方法も書かれているので,APIの操作もわかるようになります.また,サーバーに負荷をかけない安全なスクレイピングの方法や,法的な問題にならないためにどうすれば良いかと言う点も書かれているので,その点もこの本の魅力です.

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-

Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-