眠れる情報を活用しよう
ブログ記事、Twitterのつぶやき、PDFやExcelファイルとして公開された行政のデータ、無償で利用できる形式で投稿された写真...。Web上にはこれらの膨大なデータの山が眠っています。
一見すると大した価値のないデータや扱いづらいデータでも大量に収集し、きれいに整えると思いもしない価値を持つようになることがあります。
有名な例として、GoogleやBingのような膨大なWebページを探索・保管して、検索語に応じて必要な情報と合致したページを表示する検索エンジンがあります。それだけだと見つけづらい情報を、検索エンジンがきれいにまとめて見せてくれることでユーザーは必要な情報にたどり着きやすくなるのです。
あるいは、Twitterのつぶやきから人気料理店の混雑度を推測したり、行政データを地域や年代ごとに独自にまとめて見やすいグラフとして提供したりすれば今までは大した価値のなかったデータも別の顔を見せます。機械学習のようなデータ活用法もあります。
データの山とどう戦う?
データは簡単に収集、整理できるわけではありません。
たとえば、複数のブログから数年間、数千件以上の記事を取得して流行語の推移をみたいとしましょう。
ブログ記事を集めるのにもすべての記事をWebブラウザーで表示して保存するのは至難の業です。1000件の記事を1つずつ表示してダウンロードするのに手作業で30秒かかるとして、8時間以上かかります。
仮にファイルを順調に入手できたとしても、それらを時系列順に並べ必要な流行語情報を取得することは容易ではありません。
ファイルに記事日時ごとに別名を付けて保存し、さらにファイルを開いて流行語リストの中から検索していく...とてもではありませんが1日では終わらない作業です。
Web上の膨大なデータを集め、さらに必要な部分だけを抜き出すためには適切に処理する何らかの技術が必要なことに気づくはずです。
クローリング・スクレイピングを使いこなそう
これらの膨大なデータの山に立ち向かうためのプログラミングの技術が「クローリング」と「スクレイピング」です。
クローリングとはWebサイトのリンクをたどってページを全自動で収集すること(先ほどの例ではブログ記事のダウンロードに相当)を、スクレイピングはページから必要な情報を抜き出すこと(流行語の抜き出しに相当)を指します。
クローリング・スクレイピングはプログラムとして動作するため、休みなく情報を収集・解析し続け、人間よりも動作が正確です。人間がこれらの作業に取り組むよりも圧倒的に優れた成果をあげるでしょう。PDFやExcelファイルの読み込みも、プログラムとして実装すれば手間が大幅に削減されます。データ収集、抽出後の分析を考えてもプログラムで解決が容易になります。さらに、これらの技術はデータの収集だけでなく、日常的にログインが必要なWebサイト操作の自動化など様々な分野に副次的に利用できます。
Pythonでクローリング・スクレイピングをはじめよう
クローリング・スクレイピングをはじめるために最適な言語が「Python」です。言語自体の簡潔さ、豊富なライブラリー、機械学習や統計分析との親和性の高さなど教育・研究・産業の分野で広く使われているPythonはクローリング・スクレイピングにおいても最も優れた言語の一つです。他に類を見ない強力なクローリング・スクレイピングフレームワーク「Scrapy」をはじめ、高速なlxmlや非同期I/O、ブラウザー操作の自動化などWeb上のデータ収集と分析のためのすべての機能が高水準に揃っています。
『Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-』では、そのPythonによるクローリング・スクレイピングを基礎から解説。概念の理解から実践への応用まで、これ一冊でクローリング・スクレイピングを奥深く解説しています。
Web上の膨大なデータを収集・分析し、活用したいすべての人におすすめです。