
122
5 章 Python による Web からのデータの取得
の高度なデューイ十進分類法
†
で分類されるでしょう。熱心なデータ追求者にとって残念なこと
に、
Web
は有機的に増大し、大抵は新米データ可視化作成者のための簡単なデータアクセスを考
慮した制約を受けていません。そのため、実際には
Web
は巨大な量のデータのようなもので、整
形され利用可能なものもありますが(幸い、その割合は増えています)、その多くは人間が利用す
るには不適切な形式や設計になっています。そして人間は、このような比較的処理能力の低いマシ
ンで問題となる乱雑で不適切に整形されたデータをパースできます
‡
。
スクレイピングでは、パターンに従った希望のデータを入手して残りは放置します。運が良けれ
ば、データを含む
Web
ページに名前付きテーブルや汎用クラスより優先される特定の
ID
などの
便利なポインタがあります。運が悪ければこのようなポインタがなく、他のパターンを使うか、最
悪の場合にはメインの
div
の
3
番目のテーブルなど序数の指定子を用いなければいけません。こ
れは明らかに脆弱で、誰かが
3
番目のテーブルの上に新しくテーブルを追加したらおかしくなっ
てしまいます。
この節では、簡単なスクレイピングを試し、ノーベル賞受賞者データを取得します。
Python
で
このような軽量のスクレイピングに最適な
BeautifulSoup
を使い、高機能の
Scrapy
の説明は次章
に譲ります。
データや画像が Web 上にあるからといって、必ずしも自由に使ってよいわけではありません。本書で ...