1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コード未経験の僕が、Claude Code×Bright Dataで「Webを見張り続ける社内AI」を作った話

1
Posted at

〜 Bright Data × Claude Code × 社内AI 公開Webを毎日集めて、変化まで見つける完全実録 〜

僕はプログラミング未経験です。この記事では、AIに手伝ってもらいながら、Web情報を集めて変化を見つける社内AIを試作した手順を紹介します。

社内AIは、社内規程やマニュアルから質問に関係する情報を探し、その内容をもとに回答する仕組みです。

ただし、社内文書だけでは、競合の値上げや最新ニュースには答えられません。

「競合が値上げした」「新しいプランが出た」「業界でこんな導入事例が出た」。こういう情報は、Webの上で毎日変わっていきます。

今回は、Web情報を取得するBright Dataと、プログラム作成を支援するClaude Codeを使い、4つの仕組みを試作しました。

▶ Bright Data の無料トライアルに登録して、Webデータ収集を試す

作ったもの Bright Dataの役目
① 業界ニュースも答える社内AI Googleでニュースを検索して、記事の本文を取ってくる
② 毎日自動でWebを見に行く「見張り番」 毎朝集め直して、新しい記事・書き変わった記事・消えた記事を見つける
③ 競合の料金比較表 各社の料金ページを取ってきて、値段の変化を見張る
④ 自分でWebを調べて答えるAIエージェント AIが自分でGoogle検索とページ取得をする

その結果—

  • 社内文書だけでは「記載がありません」だった質問に、日付と出典URL付きで答えられるようになりました。
  • 見張り番は、深夜に集めた資料を朝と昼に見直して新しいニュースを9件見つけ、社内AIの資料を10件から19件に増やしました。
  • 競合4社の料金ページから28プランを抜き出して、Excelで開ける表にできました(ただし1社は値段を読み取れませんでした)。
  • AIエージェントは、自分で検索23回・ページ11件を調べて、出典付きで答えました。

かかったお金は、Claudeが1.24ドル(約200円)、Bright Dataが約0.42ドル(約67円)。合わせて約270円でした。

しかも、自分で書いたコードはゼロ行。全部、Claude Codeに日本語で頼んで書いてもらいました。うまくいかなかったところも含めて、そのまま公開します。

📝 この記事の読み方 各章の「💬 Claude Codeへの指示」は、僕が実際にClaude Codeに頼んだ内容です。そのあとに「🤖 Claude Codeがやったこと」と、実際に動かした結果を書いています。

今回の全体像

図1:準備から検証までの流れ。以降の各章で操作手順を説明します。
図1:準備から検証までの流れ。以降の各章で操作手順を説明します。

ステップ やること
① 社内AIとBright Dataの役目 しくみを図でざっくり理解
② Bright Dataセットアップ アカウント作成・APIキー取得
③ Claudeセットアップ クレジット購入・APIキー取得
④ パソコンの準備 Python(プログラムを動かすための言語)・作業フォルダ・部品の用意
⑤ 業界ニュースを集める Bright DataでGoogleニュースを検索して、本文を取る
⑥ 社内AIを動かす 質問して答えてもらう
⑦ 実験:ニュースあり vs なし 外の情報を足すと何が変わる?
⑧ 実験:Bright Dataあり vs なし Bright Dataが本当に必要なのはどこ?
⑨ 実験:ルールと他社の話 AIは「うち」と「よそ」を区別できる?
⑩ 毎日の見張り番 公開Webを毎日集め直して、更新・削除を見つける
⑪ 競合の料金比較表 料金ページを集めて、値段の変化を見張る
⑫ AIエージェント AIが自分でWebを調べて、出典付きで答える
⑬ かかったお金 Bright DataとClaudeの実際の利用額

使ったものは、WindowsのPC、Bright Data(無料トライアル。100ドル(約16,000円)分の無料クレジット付き)、Claude(5ドル=約800円分のクレジット)、Claude Code(プログラムを書いてもらうAI)だけです。

💡 この記事では、1ドル=160円で円に直しています。

① 社内AI(RAG)と、Bright Dataの役目

今回の社内AIで使う仕組みが「RAG(ラグ)」です。質問に関係する資料を探し、その資料をAIに渡して回答を作ります。

  • 質問されたら、まず棚から関係ありそうな資料を持ってくる(検索)
  • その資料を読んで、答えをまとめる(生成)

普通の社内AIは、棚に「社内文書」しかありません。そこで今回は、Bright Dataで集めた「業界ニュース」も棚に足します。

今回作る社内AIのしくみ
今回作る社内AIのしくみ

青い枠が、今回の主役のBright Dataです。

ここで大事なのは、「棚に一度ニュースを並べたら終わり」ではないことです。Webの情報は毎日変わります。新しいニュースが出るし、記事が書き換えられたり、消えたりもします。古い情報のままの社内AIは、古い規程を読んだ社内AIと同じように、自信を持って間違えます。

そこで今回は、Bright Dataに次の仕事を任せました。

Bright Dataの仕事 どの章で使うか ひとこと
Googleの検索結果をもらう(SERP API) ⑤⑩⑫ プログラムからGoogleの検索結果を直接取るのは難しく、Googleの利用規約でも禁止されています。ここはBright Dataの出番です
ページの本文を取ってくる(Web Unlocker API) ⑤⑩⑪⑫ 記事や料金ページを、AIが読みやすい文字にして渡してくれます
毎日取りに行って、変化を見つける ⑩⑪ 上の2つを毎朝自動で動かし、前回との違いを探します

この3つで、次のような使い方ができます。今回は、どれも実際に試しています。

  • 市場動向・公開企業情報を集め続ける(⑤⑩)
  • 競合の価格・商品情報を分析する(⑪)
  • Webの情報を根拠に答えるAIエージェント(⑫)

② Bright Data セットアップ

ポイント:Bright Dataでは、SERP API(検索1,000回あたり1.50ドル)と Web Unlocker API(ページ取得1,000回あたり1.50ドル)の2つを追加し、APIキーを取得します。

図3:各ツールの役割。設定方法は後続の手順を参照してください。
図3:各ツールの役割。設定方法は後続の手順を参照してください。

Bright Dataは、プログラムからWeb検索結果やページ本文を取得するサービスです。サイトや設定によっては取得できない場合もあります。

はじめに:データ取得・スクレイピングのコンプライアンスメモ

手を動かす前に、ここだけは押さえておきましょう。この記事のプログラムは、公開されているWebページを自動で取りに行きます。便利な分、守るべきルールがあります。

  • **Bright Dataの利用ポリシー(Acceptable Use Policy)を確認する:**ログインが必要なページの情報を集めることは禁止されています。政府系サイトなど、Bright Data側で取得できないようにしているサイトもあります(利用ポリシーを読む)。
  • **サイトの利用規約と robots.txt を確かめる:**ニュースサイトによっては、プログラムで情報を集めることを禁止しています。
  • **記事の本文をそのまま転載しない:**ニュース記事には著作権があります。ブログや社内資料には、要約と出典のリンクだけを載せましょう。
  • **有料会員限定の記事は対象にしない:**会員限定・有料の記事は、公開部分だけを根拠にします(会員限定の記事では、公開部分では確かめられない数字が答えに混ざることがあります)。
  • **個人の情報を集めない:**今回は企業のニュースだけを対象にしています。
  • **相手のサイトに負担をかけない:**今回の見張り番は1日1回、20件ほどです。件数や回数を増やすときは、必要な分だけにしましょう。
  • **会社で本格的に使うときは、法務や情報システム部門に相談する:**どこまで集めてよいかは、会社ごとにルールが違います。

STEP 1 アカウント作成・無料トライアル登録

Bright Data にアクセスして、「無料で開始」からアカウントを作ります。クレジットカードの登録は不要で、ログインすると無料クレジット(5,000)が付いていました。

💡 すでにアカウントをお持ちの方は、ログインから進めてください。

▶ まだアカウントがない方は、ここから登録できます:Bright Data の無料トライアルに登録する

STEP 2 2つの機能を追加する

今回使うのは、次の2つの機能です。

機能 ひとことで言うと 今回の使い道
SERP API 検索結果を、一覧表の形でもらえる 「生成AI 社内 導入」などでニュースを検索する
Web Unlocker API ページの中身を、読みやすい文章でもらえる 見つかった記事の本文を取ってくる

左の黒いメニューの「ウェブアクセス」(APIと書かれたマーク)を開き、「APIを追加」に進みます。「APIタイプを選択」で「SERP API(検索エンジン結果ページ)」を選んで「続行」を押し、画面に沿って作ります。続けてもう一度「APIを追加」に進み、今度は「ウェブ解除 API」(Web Unlocker APIの日本語名)を作ります。

💡 最初は「ブラウザ API」にチェックが入っています。今回は使わないので、選び直してから「続行」を押してください。

💡 設定画面で入れるのは「名前」だけでOKです。名前はあとで変えられないので、serp_api1 のような分かりやすい名前にします。説明や「Google 広告」はそのままで構いません。右側には料金(Rate $1.50/CPM=検索1,000回あたり$1.50)が表示され、支払いは成功した検索の分だけです。

💡 画面では「Webアンロッカー API」という名前で出てきます。この記事の「Web Unlocker API」と同じものです。料金は、ページを1,000回取ってきて1.50ドル(約240円)です。
⚠️ アカウントによっては、途中に「支払い方法を追加」のステップが出ます。僕の場合、最初のアカウントでは出て、作り直したアカウントでは出ずにそのまま追加できました。出たときは、画面に従ってクレジットカードを登録します。
💡 「プレミアムドメイン」(特に取りにくい一部のサイト用。追加料金あり)という項目が出たら、オフのままでOKです。

作り終わると「APIが正常に追加されました」と出て、「APIをテストする」の画面になります。ここに出るコマンドはMac向けなので、Windowsでは実行しなくて大丈夫です。画面に出ている zone の名前(ゾーン名)だけメモしましょう。

作った2つには、それぞれ名前(ゾーン名)が付きます。何も変えなければ serp_api1 と web_unlocker1 のような名前です。あとで使うのでメモしておきます。

💡 「ゾーン」は、機能ごとの契約の窓口のようなものです。名前だけ覚えておけばOKです。画面では「ゾーン」という言葉はあまり出てこず、作ったAPIの「名前」がそのままゾーン名です。あとから確かめるときは、左のメニューの「ウェブアクセス」を開くと、一覧の左端に並んでいます。

STEP 3 APIキーの取得

「ユーザーとAPIキー」の画面で、APIキーを作ってコピーします。メモ帳に貼っておきましょう。

💡 Bright DataのAPIキーは、英字と数字が長く並んだ文字列です。始まりの文字は決まっていません(僕の場合は数字から始まっていました)。③で作るClaudeのキーは「sk-ant-」から始まるので、始まりを見れば、どちらのキーか見分けられます。
⚠️ APIキーは、プログラムからBright Dataを使うための「合い鍵」です。他人に知られると、勝手に使われて料金がかかります。チャットやスクショには絶対に載せないでください。

③ Claudeのセットアップ

ポイント:Claude Console で5ドル(約800円)分のクレジットを購入し、「sk-ant-」から始まるAPIキーを作ります。

集めた情報を読んで答えを作るのは、AIのClaudeです。自分のプログラムからClaudeを呼ぶには、Claude側のAPIキーも必要です。

STEP 1 クレジットを購入する

Claude Console にログインして、「残高を追加」から5ドル(約800円。税込み5.50ドル)分のクレジットを購入します。使った分だけ減っていくプリペイド式です。

💡 購入したのに残高が$0のままなら、支払いが失敗しています。Claudeを作っているAnthropicはアメリカの会社なので、カード会社に「海外の支払い」として止められることがあります。カードの設定を確かめて、もう一度試しましょう。

STEP 2 APIキーを作る

左のメニューの「APIキー」→「APIキーを作成」を押します。

💡 途中で「ID連携を使用すれば、APIキーは不要です」という画面が出ますが、自分のPCで試すだけなら「APIキーで続ける」でOKです。

表示されたキーは、横のコピーボタンでコピーしてメモ帳に貼っておきます。この画面を閉じると、二度と表示されません。

💡 ClaudeのAPIキーは「sk-ant-」から始まる、100文字ぐらいの長い文字列です。Claude Consoleのキーの一覧には、「sk-ant-……」のように途中を省いた形でしか出ません。この省略された形をコピーしても使えないので、必ず作ったときの画面でコピーしましょう(僕はこれで一度つまずきました)。
⚠️ こちらもBright Dataと同じく、他人に見せてはいけない合い鍵です。僕は以前、うっかりAIとのチャットに貼ってしまい、すぐに削除して作り直しました。貼ってしまったら、同じように削除して作り直せば大丈夫です。

④ パソコンの準備

ポイント:Python 3.10 以上が入っているかを確かめ、作業フォルダと「道具箱」(.venv)を作って部品を4つ入れ、APIキーとゾーン名の4つを登録します。

ここが最初の「ちょっと詰まるポイント」です。でも、書いてあるとおりにコピペすれば大丈夫です。

STEP 1 PowerShellを開く

PowerShellは、Windowsに最初から入っている「文字で命令を打ち込む画面」です。スタートメニューで「PowerShell」と入力して開きます。

💡 この記事の灰色の枠(コマンド)は、1行ずつコピーしてPowerShellに貼り付け、Enterを押します。一番下に PS C:\Users\名前> が戻ってきたら、次の行へ進みます。

STEP 2 Pythonが入っているか確かめる

Pythonは、プログラムを動かすための言語です。

python --version
  • Python 3.10 以上の数字が出た → OK。次へ進みます。
  • エラーが出た、Microsoft Storeが開いた → 入っていません。python.org からインストールします。

💡 インストールするときは、最初の画面で「Add python.exe to PATH」に必ずチェックを入れます。終わったらPowerShellを開き直します。

STEP 3 作業フォルダと「道具箱」を作る

以下を1行ずつ実行します。

cd ~\Desktop
mkdir rag-brightdata
cd rag-brightdata
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install anthropic rank_bm25 sentence-transformers requests

やっていることは、ざっくりこうです。

  • デスクトップに「rag-brightdata」というフォルダを作って、中に入る
  • この作業専用の「道具箱」を作って開く(行の頭に (.venv) が付けば成功)
  • 道具箱に「部品」を4つ入れる(スマホでアプリを入れる感覚です)

最後の pip install は部品が大きいので、数分待ちます。英語がたくさん流れますが、最後に Successfully installed と出れば成功です。

STEP 4 APIキーを登録する

メモ帳に貼っておいた2つのキーを、PowerShellに教えます。" と " の間を、キーでまるごと置き換えてください。

$env:ANTHROPIC_API_KEY="ここにClaudeのキー"
$env:BRIGHTDATA_API_KEY="ここにBright Dataのキー"
$env:BRIGHTDATA_SERP_ZONE="serp_api1"
$env:BRIGHTDATA_UNLOCKER_ZONE="web_unlocker1"

💡 3行目と4行目は、②でメモしたゾーン名です。同じ名前ならそのままでOK。
💡 PowerShellを閉じると、登録したキーと開いた道具箱はリセットされます。開き直したときは、cd ~\Desktop\rag-brightdata と .venv\Scripts\Activate.ps1 を実行してから、上の4行をもう一度入れます。

ここまでの完了チェック

Bright Data側

  • ☐ アカウント作成
  • ☐ SERP APIとWeb Unlocker APIの追加(ゾーン名をメモ)
  • ☐ APIキーの取得

Claude側

  • ☐ クレジットの購入(残高が$5になっていることを確認)
  • ☐ APIキーの取得

パソコン側

  • ☐ python --version で数字が出た
  • ☐ 行の頭に (.venv) が付いた
  • ☐ Successfully installed と出た
  • ☐ キーを4行登録した

⑤ 社内文書と業界ニュースを集める

ポイント:Bright DataのSERP APIで「生成AI 社内 導入」を検索して記事10件を見つけ、Web Unlocker APIで10件中9件の本文(1件あたり上限6,000文字)を取得できました。

ここからは、Claude Codeが書いてくれたプログラムをパソコンに保存して使います。プログラムは長いので、別タブにまとめました。

🤖 Claude Codeがやったこと:練習用の社内文書(documents.py)、ニュースを集めるプログラム(collect.py)、社内AIの本体(rag.py)の3つを書いてくれました。どう動かすかも、PowerShellに打つコマンドごと教えてくれます。

保存のしかたは、どれも同じです。

  • PowerShellで notepad ファイル名 を実行する(メモ帳が開きます)
  • 「新しく作成しますか?」→「はい」
  • プログラム置き場からコピーして、メモ帳に貼り付ける
  • Ctrl+Sで保存して閉じる

💡 プログラムはメモ帳に保存、python … で始まる1行はPowerShellで実行。この役割分担だけ覚えておけば迷いません。PowerShellにプログラムを貼ろうとして警告が出たら、「キャンセル」を押してください。

STEP 1 社内文書を用意する(documents.py)

本物の社内文書の代わりに、練習用の「にせ社内文書」を4つ使います。

文書 中身
生成AI利用ガイドライン 使っていいのはClaudeだけ、社外秘は入力禁止、社外に出す前に人が確認
情報セキュリティ規程 社外秘は社内サーバーだけに保存、私物USBは禁止
旅費規程 出張の日当は1日3,000円
在宅勤務規程 在宅勤務は週3日まで

notepad documents.py で保存します。

STEP 2 ニュースを集めるプログラムを用意する(collect.py)

notepad collect.py で保存します。このプログラムがやってくれるのは、次の3つです。

  • search:Bright Dataにニュースを検索してもらい、記事の一覧を作る
  • fetch:一覧の記事の本文を、Bright Dataに1件ずつ取ってきてもらう
  • compare:Bright Dataを使わずに同じ記事を取りに行き、結果を比べる(⑧の実験で使います)

STEP 3 ニュースを検索する

python collect.py search "生成AI 社内 導入" --limit 10

💡 " の中の言葉は、自分の業界に合わせて変えてOKです。--limit 10 は「10件まで」という意味です。

記事のタイトル、サイト名、日付が並べば成功です。

つまずきポイント:実は最初に試したときは「0件」でした。Bright Dataからの返事が、たまに空っぽだったり時間がかかったりするようです。そこで、画面のスクショをClaude Codeに見せて「0件だった」と伝えると、原因を調べて「失敗したら自動でやり直す」仕組みを足してくれました。直した版で試したところ、今回も空の返事が2回続いたあと、3回目で無事に取れました。
💡 外のサービスを使うプログラムには、「失敗したらやり直す」仕組みが大事だと実感しました。「コピー用コード」の collect.py は、この仕組み入りの版です。

STEP 4 記事の本文を取ってくる

python collect.py fetch

1件ずつ取りに行くので、数分かかります。○ が取れた記事、× が取れなかった記事です。

結果は、10件中9件の本文が取れました。取れた記事はどれも上限の6,000文字いっぱいまで保存されていて、10件の取得は数分で終わりました。

ここでも「返事が空」「時間切れ」は何度か起きましたが、ほとんどは自動のやり直しで取れています。1件だけ、3回やり直しても取れない記事がありました(公的機関のページ)。無理に取ろうとせず、そのままにしています。

💡 「6000文字」は、プログラムで決めた1記事あたりの上限です。記事がそれより長いので、先頭から6,000文字で切って保存しています。

⑥ 社内AIを動かす

ポイント:社内文書と業界ニュースから質問に近い資料を4つ選んでClaudeに渡すと、社内文書だけでは答えられない他社の生成AI導入事例を、日付と出典URL付きで回答できました。

いよいよ本体です。プログラム置き場の「③ rag.py」を、notepad rag.py で保存します。

やっていることは、ざっくりこの3つです。

  • ニュースの本文を、250文字ずつの小さなかたまりに切る(長いままだと探しにくいため)
  • 社内文書とニュースの中から、質問に近いものを4つ選ぶ
  • その4つだけをClaudeに渡して、「この資料だけで答えて」と頼む

💡 Claudeへのお願い(指示文)には、「当社のルールと世の中の動きは分けて書く」「ニュースを使ったら日付と出典を書く」と入れてあります。

STEP 1 まずは社内文書だけで試す

python rag.py "出張の日当はいくら?"

初回だけ、文章の意味を読み取るAIの部品(約470MB)のダウンロードで数分かかります。英語の Warning がたくさん出ますが、気にしなくて大丈夫です。

STEP 2 ニュースのことを聞いてみる

python rag.py "他社は最近、生成AIをどう導入している?"

画面の「■ AIに渡した資料」には、[社内] と [社外] の印が付きます。[社外] が出ていれば、集めたニュースが使われています。

AIに渡した4つの資料は、すべて [社外] のニュースでした。答えは、こんな内容です。
AIに渡した4つの資料は、すべて [社外] のニュースでした。答えは、こんな内容です。

  • 社内文書(当社のルール):「資料に記載がありません」
  • 社外ニュース(世の中の動き):
  • NECが、提案書作成や議事録要約などに生成AIを使い、「生成AIを鵜吞みにしない」運用を掲げている(DXマガジン、2026年4月4日)
  • Sansanの調査では、9割が「AIが社内の情報を把握すれば成果が変わる」と答えた一方、データが完全に整っている企業は22.2%(Sansan、2026年2月18日)
  • 「AIツールを導入したが利益につながらない」と悩む企業も多い(パーソルグループの記事)

日付と出典URLが、きちんと付いています。 社内文書だけの社内AIでは絶対に答えられない質問です。

💡 よく見ると、AIに渡した4つのうち2つは、AIコンサルティング会社を紹介する同じ記事でした。ニュースを集めるときに、広告に近い記事も混ざるようです。どんな記事を集めるかは、人が選ぶのが大事だと思いました。

⑦ 実験:ニュースあり vs なし

ポイント:同じ質問でも、社内文書だけだと「資料に記載がありません」、ニュースを足すと出典URL3件・日付付きで他社の動向を回答しました。回答の中身は元の記事と照らし合わせて、一致を確認しています。

python rag.py "他社は最近、生成AIをどう導入している?" --no-news
python rag.py "他社は最近、生成AIをどう導入している?"

💡 --no-news を付けると、ニュースを使わずに社内文書だけで答えます。

結果はこうなりました。

社内文書だけ 社内文書+ニュース
AIの答え 「他社の生成AI導入については、資料に記載がありません」 NECの社内活用、Sansanの調査(担当者1,077名)、AI導入後の課題の3つを紹介
日付 なし(「日付や出典もお示しできません」) 2026年2月18日、2026年4月4日など
出典URL なし 3件(DXマガジン、Sansan、パーソルグループ)

社内文書だけだと、AIは他社のことを何も知りません。それでも、知ったかぶりをせずに「資料に記載がありません」と正直に答えたのは安心でした。そのうえで「参考:当社のルール」として、生成AI利用ガイドラインの中身を添えてくれました。

ニュースを足すと、同じ質問に日付と出典URL付きで、他社の具体的な動きを答えられるようになりました。外の情報を足したことで、答えに付いた出典URLは0件から3件になりました。

答えは本当に合っていた?

AIが出したURLを実際に開いて、その内容が本当に書いてあるか確かめました。AIは、それらしいけど間違ったことを言うことがあるからです。

NECの記事(DXマガジン)を実際に開いて、AIの答えと照らし合わせました。

AIの答え 記事に書いてあったか
社内向けの生成AI環境を整えている ✅ あった
提案書作成・議事録要約・コーディング支援に使っている ✅ あった
「生成AIを鵜吞みにしない」運用を掲げている ✅ あった(AIの出力をそのまま使わず、社内レビューを続けている)
安全面の設計やルール作りをしながら進めている ✅ あった

AIの答えは、記事の内容とぴったり合っていました。「それらしいけど実は違う」ということは、今回はありませんでした。Sansanの調査(担当者1,077名、90.7%が「AIが社内の情報を把握すれば成果が変わる」と回答、データベースが完璧に整っているのは22.2%)も、記事を開いて確かめたところ、数字まで合っていました。

💡 社内AIを使うときも、大事な判断の前には出典を開いて確かめるのが安心です。出典が付いていれば、それがすぐにできます。

⑧ 実験:Bright Dataあり vs なし

ポイント:誰でも読める公開ニュース記事10件では、Bright Dataなしでも10件、Bright Dataありでは9件の本文が取れました。Bright Dataが欠かせなかったのは、本文の取得ではなくGoogleの検索結果の取得です。

参考として、Bright Dataを使わずに、同じニュース記事を取りに行ってみました。プログラムからのアクセスを断るサイトもあるので、差が出るはずです。

python collect.py compare

画面には、記事ごとに「Bright Dataあり / なし」で取れた文字数が並びます。最後の行に、取れた記事の数が出ます。

Bright Dataあり Bright Dataなし
取れた記事 9/10件 10/10件
取れなかった記事 1件(ライオンの記事。3回やり直しても取れなかった) なし
中身の形 見出しや改行が残る。ただし画像のデータ(意味のない英数字の列)も混ざる 改行がなくなり、1行につながる。メニューやセミナー案内の文字も混ざる

collect.py compare の実行結果(2026年10月)
collect.py compare の実行結果(2026年10月)

💡 「なし」のほうは、メニューや広告の文字も混ざるので、文字数が多いほど良いとは限りません。気になる記事は、notepad news\articles.json で中身を見てみましょう。

正直に書きます。予想は外れました。 Bright Dataを使わなくても、10件すべて取れました。逆に、Bright Dataを使った側が1件取れていません。今回集まったのは、企業のお知らせページやニュースサイトなど、ふつうに誰でも読めるページばかりだったからだと思います。

つまり、「記事の本文を取ってくる」だけなら、今回の記事ではBright Dataがなくても困りませんでした。

では、中身はどう違うのか。NECの記事で、あり・なしの先頭400文字を並べてみました(使った peek.py は「コピー用コード」にあります)。

python peek.py 7

どちらも、先頭は本文ではなくサイトのメニューでした。違うのは形です。
どちらも、先頭は本文ではなくサイトのメニューでした。違うのは形です。

  • Bright Dataあり:見出しや改行が残り、どこから本文かを人が追いやすい。ただし、ロゴ画像のデータ(data:image/png;base64,iVBOR... のような英数字の列)が混ざっていて、その分だけ6,000文字の枠をむだに使っていました。
  • Bright Dataなし:改行がなくなり、メニューもセミナー案内も本文も、1行につながっていました。

どちらが圧倒的に良い、とまでは言えません。それでもAIは、Bright Dataで取った記事からNECの話を正しく拾えていました(⑦で確認済み)。

💡 今回、Bright Dataがないと本当に困ったのは、Googleでニュースを検索するところです。プログラムからGoogleの検索結果を直接取るのは難しく、Googleの利用規約でも禁止されています。本文を取る部分は、アクセスを断るサイトが混ざったときに効いてくる、「保険」のようなものだと感じました。

では、Bright Dataが本当に力を発揮するのはどこか。答えは、毎日、たくさんのページを取りに行き続けるところでした。それが、このあとの⑩〜⑫です。

⑨ 実験:うちのルールと他社の話、混ざらない?

ポイント:社内文書4件に対してニュースのかたまりが270件あると、AIに渡す4つがすべてニュースになり、社内ルールが届きませんでした。「社内2つ+ニュース2つ」に枠を分けると、2つの質問とも期待どおりに答えました。

外の情報を入れたら、ちょっと心配になったことがありました。

「他社がやっていることを、AIがうちの会社のルールみたいに答えたらまずくない?」

たとえば、ニュースに「A社はChatGPTを全社導入」と書いてあっても、うちの会社のルールは「使っていいのはClaudeだけ」です。そこで、わざと紛らわしい質問をしてみました。

python rag.py "生成AIを仕事で使うときのうちの会社のルールと、他社の最近の動きを教えて"
python rag.py "仕事でChatGPTを使ってもいい?"

最初は、社内のルールが埋もれた

結果は、心配していた「混ざる」とは別の問題でした。そもそも社内文書がAIに届かなかったのです。

  • 1つ目の質問では、AIに渡した4つが全部ニュース(しかも同じ記事が3つ)。当社のルールは「資料に記載がありません」でした。
  • 2つ目の質問では、4つとも同じ記事のメニュー部分。「使えるのはClaudeだけ」というルールは届かず、「担当部署に確認してください」という答えになりました。

知ったかぶりをしなかったのは安心です。でも、社内AIが自分の会社のルールを答えられないのは困ります。

原因は、数の差でした。検索の対象は、社内文書が4件に対して、ニュースのかたまりが270件。上から4つ選ぶと、ニュースに枠を全部取られてしまいました。

「社内2つ+ニュース2つ」に枠を分けた

画面をClaude Codeに見せて相談すると、原因を説明したうえで、AIに渡す4つの枠を、社内文書から2つ、ニュースから2つ必ず選ぶように直してもらいました(「コピー用コード」の rag.py は、直した後の版です)。

rag.py の「AIに渡した資料」の表示から数えた(2026年10月)
rag.py の「AIに渡した資料」の表示から数えた(2026年10月)

質問 期待する答え 直す前 直した後
うちのルール+他社の動き 「当社のルール」と「他社の動き」が分かれている ❌ 当社のルールは「記載なし」 ✅ 「当社のルール」「世の中の動き」を見出しで分けて回答
ChatGPTを使ってもいい? 「使えない(Claudeのみ)」 ❌ 「担当部署に確認して」 ✅ 「結論:使えません。ChatGPTは対象外」

直した後は、どちらも期待どおりでした。特に2つ目は、「ChatGPTは社内利用できる?」というニュースが渡されていても、社内ルールを優先して「使えません」と答えました。そのニュースについても、「中身はメニュー部分しかないので根拠にしていません」と断っています。外の情報と社内ルールが混ざることはありませんでした。

💡 外の情報をたくさん足すと、数の少ない社内文書が埋もれます。「社内からいくつ、外からいくつ」と枠を決めておくと安心です。
⚠️ この直しは、⑥と⑦の実験が終わったあとに入れました。そのため、⑥「社内AIを動かす」と⑦「ニュースあり vs なし」に載せたAIの答えの画面は、直す前の rag.py で動かしたものです。「コピー用コード」の今の rag.py で同じ質問をすると、「AIに渡した資料」に必ず [社内] が2つ入るので、画面が少し違います。
💡 今回は、AIに資料を渡すときに「社内文書」「社外ニュース」の印を付けています。外の情報を社内AIに入れるときは、この「出どころの印」が大事になります。

⑩ 毎日の見張り番:更新と削除を見つける

ポイント:見張り番(monitor.py)は、深夜に集めた10件の資料を朝と昼に見直して、新しい記事を合わせて9件見つけ、社内AIの資料を19件に増やしました。誤った「変わった」の判定は、直した版で2件から1件に減りましたが、記事の横の欄の入れ替わりは、まだ「変わった」と出ることがあります。

図4:Web監視は定期取得と差分比較で実現します。
図4:Web監視は定期取得と差分比較で実現します。

ここからが、Bright Dataの本領です。

📝 ⑩〜⑫の画面は、記事の公開前にMacで動かし直したものです(2026年10月27日)。Windowsでも、手順と結果の見方は同じです。

⑤で集めたニュースは、その瞬間のものです。次の日には新しいニュースが出ますし、記事が書き換えられたり、消えたりもします。そこで、公開Webを毎日見に行って、社内AIの資料を最新に保つ「見張り番」を作りました。

🤖 Claude Codeがやったこと:monitor.py を書いてくれました。1回動かすと、次の4つをします。

  • Bright DataでGoogleニュースを「新しい順」で検索して、新しい記事があれば追加する
  • 前に集めた記事をBright Dataでもう一度取りに行き、書き変わった行を見つける
  • 消えた記事は、社内AIの資料から外す
  • 結果を monitor_log.txt に記録する

STEP 1 見張り番を動かす

「コピー用コード」の「④ monitor.py」を notepad monitor.py で保存して、実行します。

python monitor.py "生成AI 社内 導入"

深夜1時に集めたニュースと、朝(10月27日 9:51)の見張りを比べた結果です。

結果 件数
新しい記事 7件(富士通、ゴールドウイン、三菱地所リアルエステートサービスなど)
変わった 2件
変化なし 8件
取れなかった 0件

ひと晩で、新しいニュースが7件。社内AIの資料は、10件から17件に増えました。「1回集めて終わり」だと、この7件は社内AIから見えないままでした。

STEP 2 毎朝自動で動くようにする

Windowsに最初から入っている「タスクスケジューラ」(決まった時間にプログラムを動かす機能)を使います。

まず、PowerShellを閉じてもキーが消えないように、今のキーをパソコンに覚えさせます(キーを打ち直す必要はありません)。

[Environment]::SetEnvironmentVariable("BRIGHTDATA_API_KEY", $env:BRIGHTDATA_API_KEY, "User")
[Environment]::SetEnvironmentVariable("BRIGHTDATA_SERP_ZONE", $env:BRIGHTDATA_SERP_ZONE, "User")
[Environment]::SetEnvironmentVariable("BRIGHTDATA_UNLOCKER_ZONE", $env:BRIGHTDATA_UNLOCKER_ZONE, "User")

次に、notepad run_monitor.bat で、自動で動かすためのファイルを作ります。

chcp 65001
cd /d %~dp0
.venv\Scripts\python.exe -X utf8 monitor.py "生成AI 社内 導入" >> monitor_run.txt 2>&1

最後に、毎朝7時に動くように予約して、試しに1回動かします。

schtasks /create /tn WebMonitor /sc daily /st 07:00 /tr "$PWD\run_monitor.bat"
schtasks /run /tn WebMonitor

💡 自動で動くのは、その時間にパソコンの電源が入っていて、ログインしているときだけです。止めたいときは schtasks /delete /tn WebMonitor で消せます。

見張り番が、最初は勘違いした

1回目の結果をよく見ると、「変わった」が2件ありました。でも、本当に記事が変わったわけではありませんでした。

変わっていたのは、ニコニコニュースの記事の横にある記事一覧と、山形新聞の「新着ニュース」の欄だけでした。画面をClaude Codeに見せると、原因を説明して直してくれました。直した版には、次の3つの直しが入っています。

起きること 原因 直し方
よこの「おすすめ記事」や広告が変わっただけで「変わった」 ページ全体を比べていた 見出しの一覧やリンクの行を外し、「。」で終わる文章だけを比べる
前回だけ「ページが見つかりません」だった記事が、今回は読めた 一時的に開けなかっただけ。記事は消えていなかった 1回見つからなければ「消えたかも」、2回続けて見つからなければ「消えた」として外す
検索の返事が空だった日に、全体が止まった 検索に失敗すると終わる作りだった 検索だけ休んで、今ある記事の見張りは続ける

特に2つ目は大事です。1回開けなかっただけで「消えた」と判定すると、まだある記事まで社内AIから消してしまうところでした。

直した版(「。」で終わる文章だけを比べる版)で、続けて動かした結果です(9:54)。

「変わった」は2件から1件に減りました。ただ、残った1件も、よく見るとゴールドウインの記事の横にある「新刊案内」やAIツールの宣伝の欄の変化でした。宣伝文のように「。」を含む欄は、まだ本文と見分けられません。完璧ではありません。

数時間後にも見に行った

同じ日の13時に、もう一度見張り番を動かしました。これまでの回の結果は、次のコマンドで一覧にできます(Macでは grep "チェック結果" monitor_log.txt)。

Select-String "チェック結果" monitor_log.txt -Encoding utf8

monitor_log.txt の記録(2026年10月27日)
monitor_log.txt の記録(2026年10月27日)

13時の回では、新しい記事が2件見つかりました。在ベトナムの日系企業向けに、生成AIを使うエンジニアチームを提供するサービスの記事と、生成AI経由の個人情報・機密情報の流出を送信前に止めるサービス(MugendAI)の記事です。社内AIの資料は、17件から19件に増えました。一方で「変わった」が3件出ましたが、3件とも記事の横にある記事一覧が入れ替わっただけでした。

なお、Macで動かし直した今回は、タスクスケジューラは使っていません。13時の回は、時間になったら1回だけ動くように待たせて実行したものです。Windowsでタスクスケジューラに登録した場合は、手で動かしたいときに次のコマンドも使えます(schtasks /run /tn WebMonitor)。

💡 タスクスケジューラは、最初の設定のままだと「その時間にパソコンが動いていて、電源につないでいるときだけ」動きます。ノートパソコンなら、次の1行で「動けなかったら、パソコンを開いたときにすぐ動く」「バッテリーでも動く」設定にできます。僕もこの設定に変えました(「State」の下に Ready と出れば成功です)。

Set-ScheduledTask -TaskName WebMonitor -Settings (New-ScheduledTaskSettingsSet -StartWhenAvailable -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries)

💡 「変わった」と出たときに、どの行が変わったか(+と-の行)も一緒に表示されるので、人が一目で確かめられます。見張り番の結果は、最後は人が確かめる前提で使うのが安心です。

▶ 見張り番で使った2つの機能の仕様は、公式ドキュメントで確認できます:SERP API の公式ドキュメントを見る/Web Unlocker API の公式ドキュメントを見る

⑪ 競合の料金比較表を作る

ポイント:生成AIツール4社の料金ページから、合計28プランを抜き出してExcelで開ける表にできました(ChatGPTはプラン名6件のみで、値段は0件)。AIの書き方のゆれによる誤検知は、ページの変化をBright Dataで先に確かめる方式で、ページが変わらなかったGemini(2回目・3回目)とChatGPT(2回目)については防げました。

次は、競合の価格・商品情報です。題材は、生成AIツール4社(ChatGPT・Claude・Gemini・Microsoft Copilot)の料金ページにしました。

🤖 Claude Codeがやったこと:pricing.py を書いてくれました。

  • competitors.txt に書いた会社の料金ページを、Bright Dataで取ってくる(比べるため、Bright Dataなしで直接開けるかも試す)
  • Claudeが、ページから「プラン名・値段・月額か年額か・誰向けか」を抜き出す(ページにない値段は推測で埋めない)
  • Excelで開けるファイル(prices_latest.csv)に保存する
  • 2回目からは、前回と比べて「値段が変わった」「増えた」「なくなった」プランを教える

STEP 1 比べる会社を決めて、動かす

notepad competitors.txt で、「会社名,料金ページのURL」を1行ずつ書きます。

ChatGPT,https://openai.com/ja-JP/chatgpt/pricing/
Claude,https://claude.com/pricing
Gemini,https://gemini.google/subscriptions/
Microsoft Copilot,https://www.microsoft.com/ja-jp/microsoft-365/copilot/pricing

💡 料金ページの場所は変わることがあります。保存する前に、ブラウザで開いて料金の表が出るか確かめてください。

「コピー用コード」の「⑤ pricing.py」を notepad pricing.py で保存して、実行します。

python pricing.py

pricing.py の1回目の実行結果(2026年10月27日)
pricing.py の1回目の実行結果(2026年10月27日)

4社で合わせて28プランを抜き出せました。Microsoftは「Microsoft 365 Copilot Business アドオン(年払い)¥2,698(通常 ¥3,148)」と、割引前の通常価格まで拾えています。結果は、そのままExcelで開けます(start prices_latest.csv)。

正直に書くと、うまくいかなかったこともあります。

  • ChatGPTは値段を読み取れませんでした。 Bright Dataで約1万文字(10,945文字)のページは取れて、AIはプラン名(無料版・Go・Plus・Pro・Business・Enterprise)の6件までは読めました。でも、値段の欄はすべて空のまま。料金の数字を「ページを開いたあとで組み立てる」作りのページだったようです。AIはページにない値段を推測で埋めないので、値段は0件でした。
  • ChatGPTとMicrosoftは、Bright Dataなしでは開けませんでした。 ClaudeとGeminiの料金ページはBright Dataなしでも直接開けましたが、ChatGPTとMicrosoftは、プログラムから直接取りに行くと「403」(アクセスお断り)のエラーが返ってきました。この2社は、Bright Dataを通したから比較表に入れられました。

値段は変わっていないのに「変わった」

同じ日に続けてあと2回(2回目・3回目)動かすと、値段は変わっていないのに、こんな「違い」が出ました。

出た「違い」 本当は?
Claude:「Team Standard seat」「Team Premium seat」がなくなり、「Team (Standard seat)」「Team (Premium seat)」が増えた 同じプラン。AIが書き方を変えただけ
Claude:Enterpriseの値段が「Seat price + usage at API rates(US$20/seat/month、年払い、最低20席)」→「US$20/seat/month」 同じ値段。説明が省かれただけ
Microsoft:6プランすべてが「値段変更」(例:「¥4,228(ユーザー/月)」→「¥4,228 ユーザー/月(消費税別)」) 同じ値段。「消費税別」が付いただけ

AIは、同じページを読んでも、毎回少しずつ違う書き方で表にします。AIの表どうしを比べると、そのゆれを「変化」と勘違いしてしまいます。

pricing.py には、こうした勘違いを減らすために、Claude Codeが提案してくれた順番で確かめる仕組みを入れてあります。

  • まず、Bright Dataで取ったページが、前回と1文字でも変わったかを確かめる
  • 変わっていなければ「値段の変更なし」。AIには聞かない(AIのお金もかからない)
  • 変わっていたときだけAIに表を作り直してもらい、数字が同じかどうかで比べる

つまり、変化を見つけるのはBright Data、変化の意味を読むのはAIという役割分担です。「コピー用コード」の pricing.py も、この順番です。

2回目と3回目を、ページの文字数で比べた

それでも「違い」が出たのはなぜか。2回目と3回目の結果を、Bright Dataで取ったページの文字数と並べました。

会社 ページの文字数(2回目→3回目) どうなったか
Gemini 21,611 → 21,611 ✅ 「ページの中身は前回と同じ → 値段の変更なし(AIは使いません)」
Claude 22,240 → 22,261 ページが少し変わったのでAIが読み直して ❌ 「増えた:Team Premium seat ほか」「値段変更:Pro、Enterprise」(書き方が2回目の前に戻っただけ)
ChatGPT 10,945 → 10,937 ページが少し変わったのでAIが読み直した。結果は ✅ 「前回との違い:なし」
Microsoft Copilot 19,002 → 18,266 AIが読み直して ❌ 6プランすべて「値段変更」(「消費税別」の付け方が変わっただけ)

結果は、半分うまくいったというところです。

  • ページが本当に同じだったGemini(2回目・3回目)とChatGPT(2回目)は、AIを使わずに「変更なし」と判定できました。
  • でも、ほかのページは、取るたびに値段と関係のないところが少しずつ変わっていました。そのたびにAIが読み直すので、ClaudeとMicrosoftでは、またAIの「書き方のゆれ」が出ました(同じプランを別の名前で書いた、値段に「消費税別」を付けたり外したりした)。

まとめると、料金の見張りは「変化があったかもしれない」というお知らせとしては使えます。でも、「増えた」「値段が変わった」をそのまま信じず、元のページを人が確かめる前提で使うのがよさそうです。

💡 もっと勘違いを減らすなら、「ページ全体」ではなく「ページの中の値段の数字」だけを比べる方法があります。これは今回は試していません。
💡 比べた値段を社内で使うときは、必ず元の料金ページを開いて確かめましょう。税込みかどうか、年払いか月払いかなど、条件で値段は大きく変わります。

⑫ 自分でWebを調べて答えるAIエージェント

ポイント:AIエージェントは、検索23回・ページ11件を自分で調べて回答しました。条件にぴったり合わない事例は「やや弱い」「除外した」と書き分け、確かめた記事の日付と内容は元の記事と一致しました。

ここまでは、「集める人(プログラム)」と「答える人(AI)」が分かれていました。最後は、AIが自分で調べて答える「AIエージェント」です。

🤖 Claude Codeがやったこと:agent.py を書いてくれました。AIに2つの道具を渡して、使い方はAI自身に任せます。

道具 やること 中身
[検索] Googleで検索する Bright Data(SERP API)
[読む] 見つけたページを開いて読む Bright Data(Web Unlocker API)

AIへのお願い(指示文)には、「検索結果の見出しだけで答えず、ページを読んで確かめる」「根拠にしたページのURLと日付を付ける」「分からないことは分からないと書く」と入れてあります。

STEP 1 質問してみる

「コピー用コード」の「⑥ agent.py」を notepad agent.py で保存して、実行します。

python agent.py "国内企業で、この1か月に生成AIを全社導入したと発表した事例を3つ、日付付きで教えて"

AIは、言葉を変えながら検索を23回し、ページを11件開いて読みました。そして、こう答えました。

  • 結論:この1か月(9月27日〜10月27日)の事例を3件見つけた。ただし3件とも、導入した企業ではなく、AIサービスを提供する会社の発表だった
  • 3件は、ウォーターエージェンシー(10月1日・ChatSenseを全社導入)、ヤマザワ(10月8日・ChatAIを「全社標準業務ツール」に)、東京パワーテクノロジー(9月29日・3,000以上のアカウントで全社展開。乗り換えなので「やや弱い事例」)
  • 1年前の発表(NEWONE)、期間外の発表(TOMAコンサルタンツグループ)、全社ではない導入(花王の研究部門)は、理由を付けて除外。「取りこぼしがある可能性がある」と、分からないことも書いている

条件にぴったり合う答えが少ないときに、無理に3つを揃えず、確かさの違いを正直に書き分けたのは、社内で使うAIとして大事なポイントだと思いました。

答えは本当に合っていた?

ヤマザワの発表(ユーザーローカルのプレスリリース、2026年10月8日)を開いて、確かめました。

AIの答え 確かめた結果
ヤマザワに「ユーザーローカル ChatAI」を提供開始 ✅ 記事のタイトルにあった
「全社標準業務ツール」と位置づけ、店舗と本部の双方で使っている ✅ 担当者コメントにあった
記事の日付は2026年10月8日 ✅ 合っていた
全従業員に広げたかどうか(人数など) ✅ 記事に書かれておらず、AIも「確認できなかった」と答えていた

大事なところは合っていて、記事に書かれていない人数などは「確認できなかった」と書き分けていました。指示文に入れた「分からないことは分からないと書く」が、そのまま効いた形です。

💡 AIエージェントが出典を付けてくれるのは、「信じていい」という意味ではありません。「すぐに確かめられる」という意味です。大事な判断の前には、出典を開いて確かめましょう。

⑬ かかったお金

会社で「これ、うちでも使えない?」と話すとき、必ず聞かれるのが「で、いくら?」ですよね。実験をすべて終えたあと、それぞれの管理画面で確かめました。

サービス 使ったこと かかった額
Bright Data ニュースの検索と記事の取得(⑤)、見張り番(やり直した回も含む)、料金ページの取得(3回)、AIエージェントの検索と読み込み 約0.42ドル(約67円)。検索(SERP API)が0.06ドル、記事・ページの取得(Web Unlocker API)が0.36ドル
Claude 料金表づくり(3回)、AIエージェント(1回) 1.24ドル(約200円)。使ったモデルは Claude Sonnet 5.5

Bright DataとClaude Consoleで確かめた利用額(2026年10月26日〜27日)
Bright DataとClaude Consoleで確かめた利用額(2026年10月26日〜27日)

Bright Dataのうち、見張り番は1回あたり多くても約0.06ドル(約10円)でした(10月27日の分は、3回の見張りと動作確認で約0.18ドル)。毎日1回、1か月動かしても約2ドル(約300円)の計算です。

💡 正確に測るコツ:作業を始める前に、両方の管理画面で今の利用額をメモしておきます。終わったあとの額との差が、今回かかった額です。
💡 Claude Code(プログラムを書いてもらうAI)の利用料は、この表には入っていません。

実際に使ったお金は、合わせて約270円。Bright Data約67円+Claude約200円で、「毎日Webを見張る社内AI」の試作品が動きました。

▶ 自分の使い方だといくらになるか、Bright Data の公式サイトで料金プランを確認できます:Bright Data の料金プランを確認する(公式サイト)

つまずきポイント集

英語のエラーが出ても慌てなくて大丈夫です。ほとんどは下のどれかです。分からなければ、画面のスクショをClaude Codeに見せると原因を教えてくれます(APIキーが映らないように注意)。

こんなとき 原因 どうするか
python が見つからない、Microsoft Storeが開く Pythonが入っていない ④のSTEP 2をやる
Activate.ps1 で赤いエラー Windowsの安全設定 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を実行し、Yで答えてもう一度
cd ~\Desktop で「存在しません」 デスクトップがOneDriveの中にある cd ~\OneDrive\Desktop を試す
No module named … 道具箱が開いていない 行の頭に (.venv) があるか確かめ、④のSTEP 3をやり直す
can't open file ファイル名が違う(メモ帳が .txt を付けた、など) dir で名前を確かめ、Rename-Item "今の名前" rag.py のように直す
SyntaxError ファイルの中身が違う(コマンドを貼った、など) notepad ファイル名 で開き、全部消してプログラムを貼り直す
invalid x-api-key Claudeのキーが間違っている sk-ant- を自分で打ってから貼ると二重になります。キーをまるごと貼り直す
credit balance is too low Claudeの残高不足 Claude Consoleで残高を確かめる
BRIGHTDATA_API_KEY が登録されていません PowerShellを開き直してキーが消えた ④のSTEP 4をやり直す
401 や Unauthorized Bright Dataのキーが間違っている キーをコピーし直して登録し直す
zone を含むエラー ゾーン名が違う ②でメモした名前で、④のSTEP 4の3・4行目を登録し直す
見つかったニュース: 0件 や「JSONとして読めませんでした」 検索結果が予想と違う形で返ってきた スクショをClaude Codeに送る。下の「URLを自分で集める方法」でも先に進められる

URLを自分で集める方法

ニュース検索がうまくいかないときは、読みたいニュース記事のURLを自分で集めてもOKです。

  • notepad urls.txt でメモ帳を開き、記事のURLを1行に1つずつ貼って保存(5〜10件)
  • 次のコマンドで本文を取る
python collect.py fetch --urls urls.txt

⑧の実験も python collect.py compare --urls urls.txt で同じようにできます。

※データを集めるときの注意は、②の最初の「はじめに:データ取得・スクレイピングのコンプライアンスメモ」に移動しました。

まとめ:コード未経験でも、ここまでできた

  • Bright DataとClaudeでAPIキーを取得すること
  • Claude Codeに、やりたいことを日本語で頼むこと(うまくいかないときは、画面のスクショを見せること)
  • Claude Codeが書いたプログラムを、メモ帳にコピペして保存すること
  • PowerShellでコマンドを実行すること

よくある質問(FAQ)

Q. プログラミング未経験でも作れますか?

A. 作れます。この記事では、自分で書いたコードは0行です。Claude Codeに日本語で頼んで書いてもらったプログラムをメモ帳に保存し、PowerShellで実行しただけです。

Q. かかった費用はいくらですか?

A. 今回の実行(⑤のニュース集めと⑩〜⑫)では、Bright Dataが約0.42ドル(約67円)、Claudeが1.24ドル(約200円)でした(やり直した回も含みます)。Claude Code自体の利用料は含みません(1ドル=160円で換算)。

Q. Bright Dataは何に使っていますか?

A. SERP APIでGoogleの検索結果を取得し、Web Unlocker APIで記事や料金ページの本文を取得しています。⑩の見張り番、⑪の料金比較、⑫のAIエージェントも、この2つの機能を使っています。

Q. Bright Dataを使わなくても、記事の本文は取れますか?

A. 今回の公開ニュース記事10件では、Bright Dataなしでも10件すべて取れました。Bright Dataが必要だったのはGoogleの検索結果を取るところで、プログラムから直接取るのは難しく、Googleの利用規約でも禁止されています。

Q. 外の情報を入れると、社内ルールと混ざりませんか?

A. 何もしないと、ニュースの数が多すぎて社内ルールが埋もれました。AIに渡す4つの枠を「社内文書2つ+ニュース2つ」に固定すると、社内ルールを優先して答えるようになりました(⑨)。

Q. 見張り番は毎日自動で動きますか?

A. Windowsのタスクスケジューラで、毎朝7時に動くよう予約できます。ただし、その時間にパソコンが起動していないと動かないため、「StartWhenAvailable」(動けなかったら次に起動したときに動く)の設定をおすすめします(⑩)。

Q. Webのデータを集めるときに、気をつけることは?

A. Bright Dataの利用ポリシーと、各サイトの利用規約・robots.txtを確認してください。記事本文の転載や、個人の情報の収集はしないでください。詳しくは②の「はじめに:データ取得・スクレイピングのコンプライアンスメモ」にまとめています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?