以前の記事「SP-APIの利用準備 IAMユーザー IMポリシー IAMロールを作成」の中で、SP-APIの利用準備を行いましたが、その際にSP-APIはAmazonの価格情報取得に向かないことに気づいてしまいました。
情報取得自動化の王道といえばWebクローリング&Webスクレイピングです。
といわけで、早速クローリングとスクレイピングの勉強を開始しました。
技術評論社から出版されている「Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド」を参考に学習を進めています。
(実はこの本間違えて2冊買ってしまったので、1冊は会社に置きっぱなしにして暇なときに読んでいます。)
今回はクローリングとスクレイピングの基礎知識について学んだことを書き綴っていきます。
クローリングとは
クローリングとは、Webページを自動で辿って情報収集を行うこと。
クローリングを行うプログラムのことをクローラーと呼びます。
例えば、Googleなどの検索エンジンは日々インターネット上のサイトを収集してキーワード単位でインデックス(索引)をつけています。
これにより検索されたキーワードにマッチする結果が一瞬で表示される仕組みとなっています。
現在のインターネットでは欠かせない技術の一つとなっています。
スクレイピングとは
スクレイピングとは、WebページからHTMLを取得し情報の抽出や整形、解析を行うことを指します。
自動でスクレイピングを行うプログラムのことをスクレイパーなどと呼ぶようです。
クローリングとスクレイピングの事例
クローリングとスクレイピングは組み合わせることによりその真価を発揮します。
クローリングで大量の情報を収集し、スクレイピングにより有益な情報を抽出・解析します。
例えば、以下のような目的で使われています。
- 検索エンジンの順位付け
- 株価情報の取得
- IR情報の収集
- 料金比較
- 求人情報
メリット
業務が効率化できる
クローリング&スクレイピングを活用することにより、情報収集の効率が格段に上昇します。
例えば複数銘柄の株価情報を毎日手動でチェックしているような場合を考えます。
手作業の場合、一日数回チェックするのがやっとでしょう。
ここにクローリング&スクレイピングを取り入れると、ほぼリアルタイムで情報を取得し、記録しておくことが可能となります。
デメリット
対象サイトに負荷をかける場合がある
クローリングは次々にWebサイトのリンクを辿って情報を集めます。
このため、やりかたによってはクロール対象のサイトに負荷をかけることに繋がります。
最悪の場合、サイトの利用を拒否されることもあります。
収集したデータの知的財産権が問題になる場合がある
また、クローリング&スクレイピングで収集したデータの出どころによっては問題になることもあります。
収集したデータに知的財産権にあたる内容が含まれていた場合、著作権者に訴えを起こされる可能性もあります。
このため、収集対象のデータやその利用方法については十分考慮しておく必要があります。
構成の変更に弱い
スクレイピングでは、HTMLの構成をあらかじめ想定したうえでデータの取得方法を定義します。
このため、HTMLの構成変更にがあった場合データの取得がうまくできないという事態が起こりえます。
利用方法
クローリング&スクレイピングの処理を実装するためには専門的な知識が必要となります。
このため、世の中にはすでにクローリング&スクレイピングを手軽に行えるサービスも存在します。
プログラム的に処理を実装する場合はPythonやJavascriptを用いるのが主流のようです。
便利なライブラリが存在するため、比較的気軽に取り組めそうです。
まとめ
今回は「クローリング スクレイピングとは? 副業効率化のための基礎知識」という内容でお伝えしました。
今回の学び
- Web上のデータ収集にはクローリング&スクレイピングが最適
- クローリングとはリンクを辿って情報収集すること
- スクレイピングとは大量の情報から必要なデータを抽出すること
- 業務効率化が図れるが、サーバーへの負荷や知的財産権に注意が必要
このブログではスキルアップもかねて、クローリング&スクレイピング処理をPythonで実装していく予定です。
HTML&CSSの知識がだいぶ怪しいので、同時進行でUdemy講座で学習していきます。
とりあえずASIN一覧からAmazon商品情報を取得するところまでが目標。
まだまだ先は長い・・・。
この記事が皆さんのお役に立てば幸いです。