データ収集でWEBスクレイピングを行なっても大丈夫?注意点と代替策
- 土門 大貴
- 記事制作日2023年4月14日
- 更新日2023年10月21日
- 1いいね!
多くの経営者の皆さんは、ネット上で情報収集をする際、「この情報を自動で収集できたらいいのに……」と思ったことがあるでしょう。
営業したい会社の連絡先や、競合他社の価格、外部サイトの閲覧数等、自動で取得できれば有用なデータが、ネットにはたくさん転がっています。
そのようなネットで公開されているデータを「自動で取得して、使いやすくする」ことを、『スクレイピング』といいます。
(正確には、WEB上のデータを自動で抽出することを『WEBスクレイピング』と言います。長いのでこの記事では『スクレイピング』で通します)
「じゃあ早速部下にスクレイピングをやらせよう!」と思った皆さん。
ちょっと待ってください。スクレイピングは非常にリスクが高く、慎重に行なわなければいけない作業です。
一つ間違えれば、会社の信用を毀損したり、高額の請求を受けたりする可能性もあります。
この記事の対象読者
- スクレイピングでデータ収集を考えている事業者様
- スクレイピングを実施しようとしているエンジニア
そもそも『スクレイピング』は可能なのか、事前に確認するべき点
スクレイピングでよくある勘違いとして、
「ネット上で公開されている情報なのだから、どんな取得の仕方をしても自由でしょ?」というものがあります。
これは全くの間違いです。
スクレイピングを始める前に、必ず以下の点を確認して下さい。
「利用規約」の確認
「このサイトの情報をスクレイピングしたい」と思ったなら、まずはそのサイトの利用規約を確認しましょう。
多くのサイトには『利用規約』が用意されていますが、その中にスクレイピングを禁止する文言が含まれているかもしれません。
『スクレイピング』の文言がなくても『ツール・ソフトウェアを使用した情報収集』が禁止されていれば、当然スクレイピングはNGです。
例えばAmazonの利用規約には、以下のような文言があります。
本規約およびサービス規約の遵守を条件とし、アマゾンまたはコンテンツ提供者は、アマゾンサービスを限定的、非独占的、非商業的および個人的に利用する権利をお客様に許諾します(譲渡およびサブライセンス不可)。この利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません。
https://www.amazon.co.jp/gp/help/customer/display.html?nodeId=GLSBYFE9MGKKQXXM
このような文言が含まれていないか、利用規約はしっかり確認してください。
「robot.txt」を確認し、準拠した形でスクレイピングを行なう
利用規約で禁止されていなかった場合、次に確認したいのは『robot.txt』です。
WEB系のエンジニア以外には、『robot.txt』という単語自体馴染みがないかもしれませんが、
この『robot.txt』は、検索エンジンのクローラー(WEB巡回ロボット)に対して、どのコンテンツをクロールしていいのか、どのコンテンツはクロールしてはいけないのか、といった指示を書くファイルです。
基本的にrobot.txtでクロールが禁止されているコンテンツは、サイト所有者が大っぴらにしたくないページ等になります。
サイト自体は検索に載っていたとしても、スクレイピングしたいページがrobot.txtでクローラーを遮断していたのならば、スクレイピングは止めておいたほうが良いでしょう。
※robot.txtの指示自体に法的な拘束力・強制力はありませんが、スクレイピングが許されるかどうかは、すべてサイト所有者の許可次第です。
無用なトラブルを避けるためにも、サイト所有者に敬意を払いましょう。
負荷を掛けない形でスクレイピングを行なう
ここまで書かれている点を確認し、いざスクレイピングを始める訳ですが、
ここで大事なことは「サーバに負荷を掛けない」ことです。
あまり日頃意識しないことだと思いますが、
あなたがウェブサイトにアクセスする度、サーバ側では多数の処理を行っています。
ごくごく少額ではありますが、その都度費用が発生していますし、アクセスが頻発すれば処理が重たくなります。
もちろんウェブサーバというものは多少のアクセスには耐えられるようにできていますが、それは通常の閲覧者がアクセスした場合の話です。
スクレイピングツールは、設定次第で通常の何倍もの負荷をサーバに掛けることができてしまいますし、
検索結果等を表示する場合は、サーバサイドで非常に重たい処理をしている場合も少なくありません。
もし負荷を何も考えずスクレイピングツールを走らせた場合、
サーバダウン等でサイト所有者の事業を妨害したり、
クラウドサーバの利用料等、意図せぬ出費を強いたり、といった結果を招きかねないでしょう。
これは『偽計業務妨害罪』や『電子計算機使用詐欺罪』等に該当する、立派な犯罪であり、実際に逮捕者も出ています。(後述します)
サーバログから情報開示を行えば、誰がサーバに負荷をかけたのかはすぐに特定できるでしょう。
業務として行ってしまったのであれば、立派な不祥事です。
著作権に注意する
そして実際にスクレイピングが成功し、手元に目的のデータが揃ったとします。
さて、そのデータの著作権は誰にあると思いますか?
もちろん、元のデータの著作者に著作権があります。
では「スクレイピングそのものが違法なのでは?」と思うかもしれませんが、
著作権法上では『私的利用』や『情報解析』においては、これらのデータを複製することが認められています。(著作権法第四十七条の五 等)
なのでスクレイピングそのものは違法ではありません。
しかし、許可された目的以外でデータを用いた場合、著作権法に抵触する可能性があります。
例えば、以下のようなケースです。
- スクレイピングしたデータを取引先に共有した。
- スクレイピングしたデータが興味深かったため、自社サイトで公開した。
- スクレイピングで作ったリストを他社に販売した。
なお、個人情報を含むデータの場合は、著作権法に加えて「個人情報保護法」にも違反しないか考えなければなりません。
法律・過去の事件
「でも実際のところ、訴えられることなんてないんでしょ?」と思いたくなるかもしれませんが、
実際にスクレイピングで逮捕者が出た事例があります。
岡崎市中央図書館事件
2010年、とある男性が岡崎市市立図書館の蔵書検索システムに対してスクレイピングツールを走らせたところ、検索システムそのものが使えなくなるトラブルが起きました。
その結果、男性は『高頻度のリクエストを故意に送りつけた』として、偽計業務妨害容疑で逮捕されてしまったのです。
……ちなみにですが、この男性が走らせたツールでは、リクエストを『1秒間に1回』としていました。
1秒間に1アクセスではなく、1秒間に1リクエストです。通常のサーバなら落ちるわけがない、非常に気を使った仕様となっていましたが、
市立図書館のシステム自体が『専門家でも想像できないほどに脆弱なもの』だったため、アクセス障害が発生し、男性の逮捕へ至りました。
正直この事件自体は、システムの脆弱さや、攻撃の意図がなかったことから不起訴となっていますが、
それでも逮捕された男性への社会的影響は計り知れないでしょう。
そのぐらいスクレイピングというのはリスクのある行為なのです。
スクレイピングできない時の対処方法
ここまで書いた『スクレイピングの注意点』を読まれて、「ずいぶんとハードルが高い……」と思われたかもしれません。
確かにスクレイピングは慎重さを求められる作業ですが、『情報を取得する』というのが目的ならば、スクレイピング以外の手段もあります。
例えば以下のような手段があります。
WebAPIを活用する
利用ユーザーが多いサービスでは、「WebAPI」という情報の取得経路が用意されていることもあります。
先程『Amazonでは利用規約でスクレイピングが禁止されている』旨をお話しましたが、Amazonでは出品者・アフェリエイター向けにAPIが用意されており、商品情報や商品価格等を自由に取得することができます。
Amazon Selling Partner API
なお、WebAPIならばスクレイピングほど気を使う必要はありませんが、
それでも利用規約には目を通し、許可されている目的・利用上限・費用等をしっかり確かめましょう。
直接データをもらう
もし「データの所有者にもメリットが有る」場合等は、直接データをもらう交渉をするのも手です。
先方も『一緒に分析したい』『認知度を高めたい』と思っているかもしれません。その場合は喜んでデータを共有してくれるでしょう。
もし先方にメリットがない場合でも、対価を支払う旨を伝えれば、交渉に乗ってくれるかもしれません。
(先に書いた通り、著作権法には注意しましょう)
独自に収集する仕組みを作る(サービスを提供する)
更にレベルの高い手法として、『独自に収集する仕組みを作ってしまう』こともできます。
例えばあなたが投資用マンションの市場データが欲しいとしましょう。
不動産サイトの多くは規約でスクレイピングを禁じていますし、対策を講じているところも少なくありません。
しかし住所や物件価格を入力すれば、利回りや市況の情報を出してくれる無料サービスを作ったらどうでしょうか。
より精度の高い、生の情報を取得できるでしょう。
もちろん、サービスの製作や集客には時間と手間がかかります。
しかしもし成功すれば、価値ある情報と、事業に使える強固な土台を手に入れることができるのです。
ぜひこういったサービスの構築も検討してみてください。
類似するものとしては、コミュニティを作り、ネット上の関心ある人たちを集めてデータを収集する手法等もあります。
よくゲームの攻略サイト等で取られている手法です。フォーラムやwiki等を作ることで、自然とゲーム内のアイテム情報等が集まるようにしています。
データ収集はプロに任せたほうが、素早く低リスク
ウェブのデータ収集についてお話してきましたが、
この記事に書ききれないほど、データ収集とは奥が深いものです。
例えばスクレイピングをするにしても、収集先の選定や規模、pythonやhtmlの技術といった、広範な知識が求められます。
もしくは独自に収集サービスを作る場合も、
開発方法から、導線の設定、集客方法等、多様な経験やノウハウが必要です。
データ収集が必要な際は、まずそういった知識を持つ会社に相談していただき、どの手法でどういったデータを取得したほうが良いのか、検討するところから始めたほうが良いでしょう。
なおTodoONada株式会社も、スクレイピング・WebAPIツールの構築・Webサービスの開発等も手掛けているため、代替手段も含めた提案を行なうことが可能です。
データ収集に関してお悩みの際は、ぜひ一度TodoONada株式会社にご相談ください!
お問合せ&各種リンク
お問合せ:GoogleForm
ホームページ:https://libproc.com
運営会社:TodoONada株式会社
Twitter:https://twitter.com/Todoonada_corp
Instagram:https://www.instagram.com/todoonada_corp/
Youtube:https://www.youtube.com/@todoonada_corp/
Tiktok:https://www.tiktok.com/@todoonada_corp
presented by
- この記事にいいね!する
この記事を書いた人
- 36いいね!
稼働ステータス
◎現在対応可能
- 土門 大貴
職種
エンジニア
システムエンジニア(SE)
希望時給単価
10,000円~30,000円
▼実績例 ・公共インフラ事業者様向け管理システム開発(Windows、Python、PostgreSQL) ・官公庁様向け地図情報アプリのインフラ開発(Windows、PostgreSQL) ・自治体様向けポイント管理サービスのAPI開発(Linux、PostgreSQL、JS、Python) ・大手製造業様向けクラウド環境開発支援(AWS全般、Terraform) ・公共事業様向け顔認証決算システム基盤開発(Windows、PostgreSQL、JS、Python) ・リース業様向け代理店向けWebAPI開発(AWS全般、GoLang、JS) ・通販サイトインフラ構築支援、要件定義~開発(AWS, ECCube) ・結婚相談所様向けオウンドメディア制作(WordPress、JS、ウェブディレクトションな)
スキル
Python
AWS
React
・・・(登録スキル数:6)
スキル
Python
AWS
React
・・・(登録スキル数:6)