現代の情報化社会においては、必要な情報をいかに素早く手に入れるかが非常に重要です。ビジネスに限らず、日常生活でも情報の取捨選択を日々行っていますよね。情報を収集する方法として、今まではインターネットで検索して集めるやり方が一般的でした。しかしウェブスクレイピングという手法が普及し、誰もが効率的にデータや情報を得ることが可能になったのです。
ウェブスクレイピングはIT専門用語の一つですが、一般の方々にとっても特別難しいものではありません。基本的な知識とポイントを把握すれば、きっとビジネスでも活かせるはずです。今回は生成aiを活用したWebスクレイピングについて解説していきます。
Webスクレイピングとは?
Webスクレイピングとは、簡潔に言うとウェブサイトから大量の情報を自動的に取得する手法のことです。英単語の“scraping”(=こする、削る)から生まれた言葉で、今や民間企業のみならず行政も取り入れています。特にビジネスに関して、競合他社の動向を探るため製品価格や新商品などを調査する機会は多いですよね。インターネットを活用して情報を集める場合、逐一ホームページや商品ページにアクセスして、テキストをコピペして、ワードやエクセルでまとめるという作業はとても負担がかかります。
ウェブスクレイピングは「Webクローラー」と「Webスクレイパー」という2つの要素で構成されるものです。プログラミングにより、情報を収集したいウェブサイトを訪れ、HTMLコードを解析します。まずクローラーがサイトのページを読み込んで、スクレイパーがそのサイトの中から必要な情報を抽出します。
こちらが指定するタイミングでスクレイピングする設定にしておけば、定期的に最新の情報を獲得することが可能です。何度も検索をかける手間が削減され、業務が大幅に効率化されるわけです。
ただし、ウェブスクレイピングを実行するためのプログラミングは専門的知識を要し、多くの企業にとっては難しい技術でした。結局、導入を断念して従来どおり人間が手作業で情報集めに時間を割く企業が今でも少なくありません。そうした状況が、生成AIの発展により大変革を起こすとみられています。複雑なプログラミングを組まずとも、テキスト入力など簡単な操作だけでウェブスクレイピングができる環境になったのです。ユーザーの指示に沿って、AIがウェブスクレイピングを行ってくれます。ウェブ上に存在する大量のデータや情報を収集する作業を、職種関係なく誰でもできるのはなんとも画期的です。
chatGPTでWebスクレイピングするにはどのようなプロンプトが有効?
ウェブスクレイピングを生成AIで実行するにあたり、活躍が期待されるのがchatGPTです。有料版のChatGPT-4に登録していれば、プロンプトにテキスト入力するだけで、自動的に作業を進めることができます。
では、どのようにプロンプトを書けばいいのか手順を説明していきましょう。
①ウェブスクレイピングしたいサイトのHTMLを開く
chatGPTのCode Interpreterを使用する場合、サイトのHTMLファイルを保存して、chatGPTにそのファイルをアップロードします。もしくはHTMLから自分が欲しい情報がどのタグに書かれているか確認してください。
②プロンプトを作成する
●「アップロードしたHTMLファイルから×××と△△△を抽出して、情報をテーブル形式で表示してください」
●「下記のURLから、×××(情報の種類)を取得するPythonコードを作成してください」
Code Interpreterを使用する場合は一番目のプロンプト、そうではなくテキスト入力で行う場合は二番目のプロンプトを参照してください。たとえば製品名など、ページの見出しになるであろう情報は、
というタグで括られています。
そのようなケースでは、プロンプトに「×××は
に続くワードです」と、HTMLの要素識別を伝えてあげると、より正確に求める情報を抽出できるはずです。
あとは、生成されたコードを実行するなり、収集したデータをダウンロードするためのリンクが表示されるので、きちんと情報を収集できたか確認しましょう。不備があれば、再度chatGPTに指示を出し、改良をくわえてください。
chatGPTでスクレイピングは禁止されているって本当?
chatGPTなどの生成AIを用いてウェブスクレイピングを行うと、利用規約に違反して責任を問われる恐れがあります。一例として、大手通販サイトで販売されている特定の商品情報をスクレイピングすると仮定します。通販といえば、Amazonや楽天市場、Yahoo!ショッピングなどが思い浮かびますよね。しかし、これらのサイトはスクレイピングを禁止しています。一体どういうことでしょうか。
Amazonの利用規約を確認すると、次の項目が記載されています。
「利用許可には、アマゾンサービスまたはそのコンテンツの転売および商業目的での利用、製品リスト、解説、価格などの収集と利用、アマゾンサービスまたはそのコンテンツの二次的利用、第三者のために行うアカウント情報のダウンロードとコピーやその他の利用、データマイニング、
ロボットなどのデータ収集・抽出ツールの使用は、一切含まれません」
Amazonは、データ収集・抽出ツールの使用を明確に禁止しています。すなわちスクレイピングを許可していません。同様の楽天の利用規約にも、下記の文面があります。
「当社の事前の許可を得ることなく、自動化された手段(自動購入ツール・ロボットなどこれらに準ずる手段)を用いて商品を購入すること(商品ページ上の情報取得等を含む)」
また、サーバーに過度な負荷をかけることを理由にスクレイピングを禁止するサイトもあります。代表例はYahoo!ファイナンスです。日常生活でも、サイトにアクセスした時、「私はロボットではありません」という項目にチェックを求められる場面がありますよね。実はそれ、スクレイピングなどを弾く仕組みとして採用されたものです。
スクレイピングの可否を判断する方法としては、サイトの利用規約に目を通すか、サイトのURLの最後に「/robots.txt」をつけてアクセスしてみることです。表示されたページで“Disallow”と書かれている部分は、スクレイピングを禁止していると認識してください。
まとめ
ウェブスクレイピングは、インターネット全盛の情報化社会では欠かせない技術となるでしょう。chatGPTを活用すれば、プログラミングの知識がない専門外の方でも、情報収集を効率化できます。
かといって、どんなサイトにもスクレイピングを実行していいわけではなく、禁止するサイトも存在します。ただちに法的責任を問われるわけではないにしても、企業間トラブルに発展するリスクは否定できません。あくまでも許容された範囲内で、ウェブスクレイピングを有効活用することを遵守していきましょう。