
ネット上のデータを効率よく収集する技術として、いま注目を集めているクローリングとWebスクレイピング。
そこで今回はクローリングとWebスクレイピングの根本的な違いや運用の目的、それぞれの活用法を徹底解説いたします。
目次
クローリングとは?
クローリングとは、Webサイトを巡回し、Webページ上のHTMLやPHPといった情報を収集・保存する技術のことです。「這いずりまわる、徘徊する」という意味があり、クローラーがWebサイト内の情報を這いずり回りながら収集するイメージができます。
クローラーとクローラビリティ
クローラビリティはサイト運営者が検索結果に表示させたいページをクローラーに回遊させるために、クローラーを評価させたいページに誘導させる戦術のことです。Webサイト内にパンくずリストをつくったり、トップページにリンクをつけるなどの工夫をすることで、クローラーはそのページを見つけやすくなります。つまり、クローラビリティをあげることがSEO対策のひとつとなります。
クローリングとWebスクレイピングの違い
「Webスクレイピング」はクローリングとよく類似した技術として取り扱われていますが、厳密には違います。
クローリングが広くWebサイトを巡回し、全ての情報を収集することが目的であることに対し、スクレイピングはHTML等の情報からタイトルや見出しなどを指定し抽出することが目的になります。クローリングで得た情報をスクレイピングで抽出するなど、両方の技術を併用して活用することもあります。
クローラーの種類
クローリングを実行するロボットのことをWebクローラーといいます。一般的にクローラーというとGoogleなどで使われるロボットをイメージしますが、ここでは2種類のクローラーをご紹介します。
検索エンジン用クローラー
クローリングの技術としてよく知られているのが検索エンジンです。公開されているWebサイト全てを巡回し、Webサイト内のテキストや画像をデータベースに蓄積し、検索用のマスターデータとして活用されます。日本国内の検索エンジンの多くはGooglebotを活用しています。
Googlebot、Bingbot、Yahoo Slurpなど
Webクローラーツール
クローリングとスクレイピングは正確にいうと違いがありますが、一般的にクローラーツールというとスクレイピングツールと同等の意味として扱われているものが多いように感じます。クローラーツールはプログラミング言語を必要としないものが多く、URLや抽出したいデータを設定するだけでデータ収集できることが特徴です。
Octoparse、import.io、UiPathなど
クローラー対策とは
Googleのような検索エンジンクローラーに認識され、Webページを検索エンジン上に表示されることをクローラー対策といいます。作成したページをクローラーに巡回してもらうためにGoogleSearchConsoleでページ登録したり、XMLサイトマップを作成することでクローラーが巡回しやすい仕組みをつくること、つまりクローラビリティを高めることが大切です。
逆に検索エンジンに表示したくないページがある場合にもクローラー対策が必要です。XMLサイトマップ内に「robot.txt」を作成し、そこにクローラー禁止の旨を明示する必要があります。(robot.txtについてはこの後の「クローリング・Webスクレイピングの注意点」で述べます)
クローリング・Webスクレイピングのメリット
大量のデータを一気に取得
Webサイトから大量の情報を収集するためには時間と手間がかかります。また、人手でコピペ作業を繰り返すことでミスがうまれることもあるでしょう。しかし、クローリングやスクレイピングの技術を活用すればミスすることなく、また一度設定することで手をかけずとも大量のデータを自動で取得してくれます。
業務効率化
クローリング、スクレイピングは業務の自動化を促進してくれます。基本的にはWebからのデータ収集となりますが、APIやAIと連携させることによってデータ収集のその先の業務まで自動化させることができます。例えば、ポータルサイトのマスターデータをクローリング・スクレイピングで取得し、そのデータベースから自動でポータルサイトに組み込むよう設定すれば、ポータルサイトの情報が自動で更新されるようになります。
クローリング・Webスクレイピングの活用法
検索エンジンの作成
検索エンジンはクローリングすることで作成が可能です。公開されているWebサイトを全て巡回することで検索エンジンの素を得ることができます。Googleのような検索エンジンの作成は難しいとしても、その応用としてポータルサイトもクローリングとスクレイピングを組み合わせることで作成することができます。
営業リストの作成
営業活動に欠かせない営業リストの作成にWebサイト上のデータを活用しようと考えている場合はクローリング、Webスクレイピングが有効的です。多くの企業情報が掲載されているWebページがあれば、そこからデータを一括で収集し、営業リストを自動で作成することが可能です。
新規事業の立ち上げの市場調査
新規事業を立ち上げようとする際には市場調査が欠かせません。
市場調査の方法は様々ですが、すでにデータが蓄積されているWebサイトからのオープンデータを活用するのはひとつの手でしょう。Webサイト上にあるオープンデータは膨大であるため、ひとつひとつを目で見て、そのデータをコピペするのは大変です。Webスクレイピングを活用すれば、設定したWebサイトから特定の情報だけをすべて抽出することができます。人手では大変な作業をWebスクレイピングに任せることで効率的な市場調査が行えます。
競合調査
複数の競合企業を調査、その動向を追うために定期的にWebサイトをチェックしている場合や競合製品が多く掲載されているECサイトからデータを取得したい場合にもクローリングやWebスクレイピングが活用できます。クローリングやWebスクレイピングは単発のデータ収集だけではなく、継続的なデータ収集も可能です。競合企業の些細な変化も逃さないためには人手ではなくクローリングやWebスクレイピングで自動化させることが有効的です。
クローリング・Webスクレイピングの方法
クローリングを活用するためにはいくつかの方法がありますが、今回は主要な2つのクローリングのやり方をご紹介します。
ひとつは先に述べた「クローラーツール」を活用する方法です。クローラーツールはコーディングの必要がなくクローリング・Webスクレイピングが可能ですが、自由度は低くできることに限界があります。
もうひとつの手段はプログラミングを自らコーディングし、実装して行う方法です。ここではクローリングに適しているプログラミング言語をご紹介します。
Python
Pythonにはクローリング・Webスクレイピングを実装するためのライブラリが充実しています。つまり、プログラミングコードを細かく書く必要がなく、ライブラリを読み込ませることで効率的にコーディングすることが可能です。また、汎用性が高いのもPythonの魅力的なところです。
主要ライブラリ:requests、Beautiful Soup
Ruby
Pythonと同様にクローリング・Webスクレイピングを実装するためのライブラリが一通りそろっており、Pythonよりも軽量なライブラリであることが魅力的です。
主要ライブラリ:Nokogiri
他にも、ExcelのVBAを利用してWebスクレイピングを行うことも可能ですが、クローラーツールと同様にできることに限界があるため、クローリング・WebスクレイピングでWebデータを取得したい場合にはどの手法が適しているのか検討し、その手段を選んでいくのがよいでしょう。
クローリング・Webスクレイピングの注意点
著作権法
オープンデータとして公開されているWebサイト上の情報ですが、テキストデータや画像データなどは創作物として扱われることが多く、取り扱いに注意が必要です。収集したデータをそのまま活用したりすると著作権法にふれる可能性があるため、クローリングやWebスクレイピングで収集したデータはどこまで活用できるのか把握する必要があります。
Webサイトに負荷をかける
クローリングやWebスクレイピングはWebサイトを閲覧するようにでデータを取得していきます。ひとつデータを取得するということは1回Webサイトを閲覧するのと同等であり、その頻度が多かったり速度が速いとWebサイトに負荷をかけてしまい、最悪の場合サーバーダウンさせてしまうことがあります。そうなると業務妨害として訴えられる可能性もあります。クローリングやWebスクレイピングをするにはそれなりの知識が必要とされるでしょう。
また、Webサイトごとに「クローリング・Webスクレイピング禁止」としている場合もあります。これが明示されているにも関わらずクローリング・Webスクレイピングを実行してしまうとこれも法律にふれることとなってしまいます。これを回避するためには「robot.txt」というWeb上の指示書を確認する必要があります。
robot.txt
robot.txtにはどのサイトにロボットがアクセスしてよいか、またしてはいけないかが提示されています。robot.txtには以下の指示がされていることが多いです。
- User-agent … 対象となるクローラーの種類
- Disallow … クロールを禁止するパス
- Allow … クロールを許可するパス
- Crawl-delay …クロールする間隔(秒)
- Sitemap … サイトマップXMLのURL
例えば、「User-agent:*」となっていれば全てのクローラーに対し、「Disallow: http://www.sample.jp/no/」とあればこのページのクローリングが禁止されていることがわかります。このrobot.txtを調べる際にもPythonを使うと便利です。
クローリングとWebスクレイピングで業務効率をアップしよう!
クローリングとWebスクレイピングの業務活用は近年始まったばかりで、現在本格導入している企業はかなり少数です。だからこそいまクローリングやWebスクレイピングの運用を始め、業務効率をアップすれば、それが結果的に売り上げの増大につながり、競合他社を大きく引き離すきっかけになるでしょう。
しかし、クローリングやWebスクレイピングを実行する際にはいくつかの注意点があります。それを無視して実行してしまうと法律に触れて罰せられる可能性もあります。クローリング・Webスクレイピングを始めたい場合はまず専門家に意見を聞き、どのようにはじめることが適切か相談するのもよいでしょう。