Webスクレイピングを実施する中で、データ収集可能か不可能か判断する場面があります。
また、スクレイピング実施がOKなサイトなのか、禁止されているサイトなのかも含めて解説します。
- Webスクレイピングとは
- Webスクレイピングとクローリングの違い
- Webスクレイピング可能なサイトの見分け方
- Webサイトの特徴とサイト例
- WebスクレイピングOKなサイトと禁止サイトの見分け方
- Webスクレイピングはなぜ禁止されるのか?
- Webスクレイピング禁止サイトの実例
- SIer/Web系企業での実務経験があるフリーランスエンジニア
- プログラミングスクールでの講師実績あり
- HR領域によるエンジニア特化の採用代行を業務委託で兼務
Webスクレイピングとは
Webスクレイピングとは、主にサイトからデータを収集する技術を指します。
そのため、サイト内の情報が収集可能かどうかによって、業務効率化できるか左右されます。
Webスクレイピングとクローリングの違い
一般的に、スクレイピングはデータ収集する行為を指します。
一方で、クローリングはデータを保持するサイト内を巡回する行為を指します。
スクレイピングとクローリングの違いを詳しく知りたい人は、「【Python】ページ遷移型のクローリング&スクレイピング方法」といった記事を一読ください。
Webスクレイピング可能なサイトの見分け方
スクレイピング対象となるサイトにて、以下の棲み分けから考える必要があります。
一般的に、URL(Uniform Resource Locator)は、Webページのアドレスを示します。
静的ページのURLは、拡張子が.html, .php, .aspなどのファイル拡張子で表現されます。
一方で、動的ページはクエリパラメータを含むことがあり、URL内に「?」や「=」といった特殊文字が含まれます。
以下の特徴から見分けることができます。
- ページの更新頻度
- ページのロード時間
- リンクの挙動
- ブラウザのアドレスバー表示
静的ページと動的ページの更新頻度
静的ページは、一度作成された内容が変わることはありません。
そのため、頻繁な更新が画面上で実施されない場合、静的ページの可能性が高いです。
一方で、動的ページはユーザーの要求やデータベースの状態によって頻繁に画面が変化します。
静的ページと動的ページのロード時間
静的ページは、事前に生成されたコンテンツを表示するため、通常はロードが速いです。
一方で、動的ページはリクエストごとにコンテンツを作成するため、データベースアクセスや処理が必要な場合、ロード時間が長くなります。
また、ページ遷移発生の有無も見分けるポイントです。
静的ページと動的ページのリンク挙動
静的ページは、リンクをクリックしてもURLが変化せず、ページ全体が再読み込みされます。
一方で、動的ページはリンクをクリックするとURLが変化し、ページの一部分や特定データがリリロードあるいは再レンダリングされます。
ブラウザのアドレスバー表示
静的ページは、アドレスバー表示されるURLがそのままページのアドレスになります。
一方で、動的ページはアドレスバーにリクエストを送信したURLが表示されます。
実際に表示されるコンテンツは別のURLから取得される場合もあります。
Webサイトの特徴とサイト例
世の中に膨大なサイト数があるため、特徴を押さえておくとWebスクレイピング可能なサイトか判断がつきやすいです。
そのため、以下にどのような分類ができるか記載しています。
分類 | 特徴 | サイト例 |
---|---|---|
静的ページ | ・テキストデータ中心のポータルサイト ・まとめ記事を包括したキュレーションサイト | ・マイナビ ・リクナビ ・ホットペッパービューティ ・記事コンテンツ中心のWordPressサイトなど |
動的ページ | ・サイト内でサービス/コンテンツ機能を持つアプリケーションサイト ・開発者ページなどが併設されるサイト | ・YouTube ・Googleマップなど |
静的ページに関するスクレイピングの具体例を詳しく知りたい人は、「【Python】ページ遷移型のクローリング&スクレイピング方法」を一読ください。
あるいは、動的ページ関するスクレイピングの具体例を詳しく知りたい人は、「【Python】SeleniumによるGoogleマップのスクレイピング」を一読ください。
WebスクレイピングOKなサイトと禁止サイトの見分け方
そもそもWebスクレイピングOKなサイトか、禁止なサイトかを判別するために、以下の内容に注意しましょう。
- Webサイトの利用規約を確認
- robots.txtファイルを確認
- Webサイトの使用目的/ポリシーを確認
- Webサイトのアクセス制限/CAPTCHAの有無を確認
- 管理者への問い合わせ
Webサイトの利用規約を確認
Webサイトの利用規約や利用条件は、Webスクレイピングやデータしゅうに関する明示的な規定が含まれます。
Webサイト内のフッターやプライバシーポリシーのリンクからアクセスできることが多いです。
robots.txtファイルを確認
robots.txtは、Webサイトに対してクローラーを制限/制御するために記載されたファイルです。
一部のWebサイトでは、スクレイピングを禁止するためにrobots.txtを使用している場合があります。
Webサイトの使用目的/ポリシーを確認
Webサイトが特定の使用目的(非営利・教育目的)に制限される場合、Webスクレイピングを禁止する可能性があります。
利用目的からスクレイピングが許可されているか判断する必要があります。
Webサイトのアクセス制限/CAPTCHAの有無を確認
Webスクレイピング防止として、アクセス制限やCAPTCHAといったセキュリティ対策が施されている可能性があります。
Webサイトにてセキュリティチェックがある場合、Webスクレイピングに制限をかける可能性があります。
管理者への問い合わせ
Webサイトの管理者に問い合わせすることで、Webスクレイピングの確認を取るケースもあります。
問い合わせ情報は、サイト内の連絡先ページやプライバシーポリシーページに記載があるケースが多いです。
Webスクレイピングはなぜ禁止されるのか?
Webサイトには有用なデータが大量に存在しており、手動で集めることは非常に困難です。
スクレイピングにおける利便性の高さから活用を検討している方も多いと思われますが、スクレイピング行為に法的な問題がないかといった点です。
スクレイピングの概要から、法律に触れる可能性について解説します。
Webスクレイピングが禁止される理由
Webスクレイピングによる対象サイトは、当然サイト内に掲載される情報になります。
基本的に掲載される情報は、サイト運営側が公開することで目に触れる形になります。
つまり、Web検索で参照される情報と同等であるため、スクレイピングによる情報収集が禁止行為にあたることはなく、違法性はありません。
問題なのは、サイト運営側に迷惑をかけること(サーバーへのアクセス負荷)や収集データの取り扱い方(個人情報や機密データ)になります。
Webスクレイピング禁止サイトの実例
特に大手企業が運営するサイトには規約が記載されているケースが多く、スクレイピング実行者も確認しておく必要があります。
本記事では、スクレイピング禁止サイトを実例として記載します。
Amazon
ECサイトで有名なAmazonは、利用規約によりWebスクレイピングを禁止しています。
「利用許可およびサイトへのアクセス本規約およびサービス規約の遵守を条件とし、アマゾンまたはコンテンツ提供者は、アマゾンサービスを限定的、非独占的、非商業的および個人的に利用する権利をお客様に許諾します(譲渡およびサブライセンス不可)。この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません」
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GLSBYFE9MGKKQXXM
楽天
国内最大手である楽天のECサイトもWebスクレイピングを禁止しています。
「第7条(禁止事項)(7) 当社の事前の許可を得ることなく、自動化された手段(自動購入ツール・ロボットなどこれらに準ずる手段)を用いて商品を購入すること(商品ページ上の情報取得等を含む)」
http://www.rakuten.co.jp/doc/info/rule/ichiba_shopping.html
X(旧:Twitter)
世界中で利用者が多いSNS「X(旧:Twitter)」でも事前承諾なしのクローリングあるいはスクレイピングを禁止しています。
「8.コンテンツおよび本サービスの利用に対する制限本サービスのクローリングは、robots.txtファイルの定めによる場合には許されます。ただし、Twitterの事前の承諾なしに本サービスのスクレイピングを行うことは明示的に禁じられています」
https://twitter.com/ja/tos/previous/version_7
こちらも世界中で利用者が多いSNS「Facebook」でも、利用規約により悪意のあるスクレイピングを禁止しています。
特に、Facebookは個人情報を取り扱うSNSであるため、厳格な規約になっています。
「2.Meta製品で共有可能なコンテンツおよび認められる行為弊社から事前の許可を得ることなく、自動化手段を用いて弊社製品のデータにアクセスしたり、データを取得したりすること、およびアクセス許可のないデータへのアクセスを試みることは禁止されています。」
https://www.facebook.com/legal/terms
YouTube
Googleが運営するYouTubeも、利用規約により特定の条件を除きスクレイピングを禁止しています。
「本サービスの利用には制限があり、以下の行為が禁止されています。自動化された手段(ロボット、ボットネット、スクレーパなど)を使用して本サービスにアクセスすること。ただし、(a)公開されている検索エンジンを YouTube の robots.txt ファイルに従って使用する場合、または(b)YouTube が事前に書面で許可している場合を除きます。」
https://www.youtube.com/static?template=terms&hl=ja&gl=JP
スクレイピング行為の規約を確認したらAPIを検討しよう
基本的にWebサイトからのスクレイピングに制限・禁止が施されていることから、Web APIを設けているケースが多いです。
実際に、Webサイトからデータ収集し利用するサードパーティアプリは、各SNS・サイトが提供するWeb APIを連携しています。
そのため、Webスクレイピングプログラムの作成が規約上厳しいことが分かれば、Web API連携のプログラム作成を検討してみましょう。
WebスクレイピングとAPIの違い
WebスクレイピングとAPIはどちらもデータ収集に限定すると、情報を取得する方法になりますが、役割は大きく異なります。
Webスクレイピングの特徴 | APIの特徴 |
---|---|
・Webサイトから情報を抽出する技術 ・WebサイトのHTMLを解析しデータ抽出する ・サイト構造やHTML変更により動作/処理の影響が大きい | ・システム間でデータや機能を利用できるインターフェース ・外部の開発者が特定のデータや機能にアクセスできる ・サイト構造やHTML変更により動作/処理の影響が少ない |
つまり、WebスクレイピングはWebサイトからデータ収集するための手法であり、APIは異なるシステム間でデータや機能を連携するインターフェースです。
WebスクレイピングとRPAの違い
WebスクレイピングとRPAの違いとして、データ抽出方法の違いが挙げられます。
Webスクレイピングの特徴 | RPAの特徴 |
---|---|
・Webサイトから情報を抽出する技術 ・WebサイトのHTMLを解析しデータ抽出する ・サイト構造やHTML変更により動作/処理の影響が大きい | ・画面操作の記憶により情報を抽出する技術 ・RPAツールで誰でも利用できる ・サイト構造やHTML変更により動作/処理の影響が少ない |
特に、RPAは動的ページであるサイト/アプリなどでも常時エラーなく動作できるのが利点です。
RPAのように、自動的にブラウザ操作するプログラムを実装したい人は、「【Python】 Seleniumとは?インストールから使い方まで徹底解説!」を一読ください。
本格的にエンジニアへのキャリアチェンジを考えてる人へ
プログラミングスキルを社内やプライベートで活用している人が増えています。
- 一部業務プロセスの効率化/自動化
- 分析システム構築による担当業務改善
- 社内公開によるチーム/プロジェクトの業務時間短縮
Pythonは特にデータ収集や分析に特化したライブラリが豊富なため、業務プロセスの一元管理やDX化に貢献しています。
また、プログラミングに触れてエンジニアへのキャリアチェンジを実現したい人の人材規模も年々高まっています。
一度、あなたのキャリアプランを振り返ってみてください。
- 収入アップが見込めている
- キャリアアップが見込めている
- 働き方を明確に決めれている
上記の項目をYESと答えられる人は、特に言うことはありません。
現在、エンジニアへのキャリアチェンジでお悩みの方は、「【Python特化】厳選したおすすめプログラミングスクール」を一読ください。
コメント
コメント一覧 (1件)
[…] Webスクレイピングが可能なサイトなどを詳しく知りたい人は、「Webスクレイピング可能なサイトの見分け方とOK・禁止なサイト」といった記事を一読ください。 […]