2
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?

RAG BrightData ClaudeCode スクレイピング 生成AI

2
Posted at

先に結論から書きます。

メルカリで実際に売れた「Nintendo Switch 有機ELモデル」の値段を自動で集めて、社内のルールと一緒にAIに渡したところ、

目立った傷や汚れがない本体なら、買取の目安は 21,600円 です(2026年10月13日時点、売り切れ6件の中央値24,000円から10%引き)

と、根拠つきで答えてくれるようになりました。

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

しかも、自分で書いたプログラムは0行。やったのは、日本語でお願いすることと、決まった命令を貼り付けて実行することだけです。

ただし、途中で「エラーは出ていないのに、データが足りない」という落とし穴に何度もハマりました。この記事では、そのつまずきも含めて、そのまま公開します。

今回の全体像

ステップ やること
① 準備 Bright Dataの道具をパソコンに入れて、ログインする
② スクレイパーを作る 「この情報を集めて」と日本語でお願いする
③ データを集める 作ったスクレイパーを動かす
④ 中身を確認する 頼んだ情報が本当に取れているか見る
⑤ 自動修理を試す 足りなかった部分を、AIに直してもらう
⑥ データを整える 関係ない商品を取り除き、相場を出す
⑦ AIに聞いてみる 社内ルールと一緒に渡して、質問する

image.png
今回の全体構成。外のデータ(メルカリ)と社内の資料を、同じ場所に入れてAIに探させます

そもそも「社内RAG」って何?

ポイント:RAGは、AIが答える前に資料を探して読む仕組みです。社内の資料だけでは、「メルカリの今の相場」のような外の情報には答えられません。

RAG(ラグ)は、ひとことで言うと 「AIが答える前に、資料を探して読んでから答える仕組み」 です。

テストにたとえると、AIに「持ち込みOKの資料」を渡しておくイメージです。AIは質問されるたびに資料の中から関係しそうなページを探し、それを読んでから答えます。だから、AIがもともと知らない社内のルールにも答えられるようになります。

ただ、社内の資料だけを渡したRAGには弱点があります。

例えば、リユース(中古品の買取・販売)の仕事をしている人が、社内のAIにこう聞いたとします。

このゲーム機、いまメルカリだといくらで売れてる?

社内の査定マニュアルには「状態がこうなら何%引き」というルールは書いてあっても、今の市場の値段は書いてありません。書いてあったとしても、すぐに古くなります。

そこで今回は、メルカリの公開されている情報を自動で集めて、社内の資料と一緒にAIに渡すことに挑戦しました。

この記事に出てくる言葉

最初に、よく出てくる言葉をまとめておきます。全部覚えなくても大丈夫です。分からなくなったら、ここに戻ってきてください。

言葉 ひとことで言うと
スクレイピング Webサイトから必要な情報を自動で集めること
スクレイパー スクレイピングをするための「自動で集めるロボット」
Bright Data スクレイピングの道具やサービスを提供している会社
Scraper Studio 日本語でお願いするだけで、スクレイパーをAIが作ってくれるBright Dataのサービス
Claude Code 日本語で指示すると、作業を代わりにやってくれるAI
ターミナル 文字で命令を打ち込む「黒い画面」。WindowsではPowerShell
Collector ID 作ったスクレイパーの「番号」。この番号で、同じスクレイパーを何度でも呼び出せる
JSON(ジェイソン) 集めたデータを保存する形式の一つ。メモ帳でも開ける
クレンジング 集めたデータの中から、ゴミや関係ない物を取り除いて整えること
RAG AIが答える前に資料を探して読む仕組み(上で説明したもの)

! 注意:集めてよい情報かどうか、先に確認しよう

今回集めたのは、ログインしなくても誰でも見られる情報だけです。出品者の名前やプロフィール、コメントなど、人に関わる情報は集めていません。集めたのは、商品名・値段・商品の状態などの「商品そのものの情報」です。

作業の前に、メルカリの利用規約も読みました。規約の本文には、スクレイピングを名指しで禁止する文は見つかりませんでした。ただし、「運営のじゃまになる行為」や「サービスで知った個人情報を、別の目的に使うこと」は禁止されています。

そこで今回は、検索結果1ページ分(最初の20件)だけにしぼりました。会社の仕事として続けて使う場合は、必ず法務の担当者に相談してください。

Bright Dataの利用ポリシー(Acceptable Use Policy)でも、ログインが必要なページの情報を集めることは禁止されています。作業の前に、こちらも確認しておきましょう(利用ポリシーを読む)。

① 準備:道具を入れてログインする

まず、Bright Dataの道具(CLIと呼ばれるもの)をパソコンに入れます。

WindowsならPowerShell、Macなら「ターミナル」というアプリを開いて、次の命令を1行ずつ貼り付けてEnterを押します。

npm install -g @brightdata/cli
bdata login

1行目で道具を入れて、2行目でBright Dataにログインします。2行目を実行するとブラウザが自動で開くので、「許可」を押せば完了です。

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

! つまずきポイント

私は最初、この命令をBright Dataの管理画面にあるAIチャット欄に打ち込んでしまいました。チャットは「この命令を実行してください」と返すだけで、何も起きません。命令は、自分のパソコンの黒い画面(PowerShellやターミナル)に打ち込むものです。

② スクレイパーを作る:日本語でお願いするだけ

ポイント:bdata scraper create に検索結果のURLと日本語のお願いを渡すと、約7分でスクレイパーが完成し、番号(Collector ID)が発行されました。

次に、データを集めるロボット(スクレイパー)を作ります。

まず、ログインしていない状態でメルカリを開き、「Nintendo Switch 有機ELモデル 本体」で検索しました。絞り込みで「売り切れ」と「新しい順」を選びます。実際に売れた値段を、新しいものから集めるためです。

image.png
ログインせずに検索し、「売り切れ」「新しい順」で絞り込んだ画面(出品者の呼び名はぼかしています)

この検索結果のURLをコピーして、次のようにお願いします。

bdata scraper create "(さっきコピーした検索結果のURL)" "この検索結果に表示される最初の20件の商品について、各商品ページを開き、商品名、価格(数値のみ、円)、商品の状態、カテゴリ、ブランド、販売状況(販売中か売り切れか)、商品URLを取得して。出品者名、出品者のプロフィール、コメントなど個人に関する情報は取得しないで。" --name mercari-price-for-rag --pretty -o create.json --timeout 1200

長く見えますが、やっていることは 「このURLから、この情報を集めて」と日本語で伝えているだけ です。

お願いの文には、3つ工夫を入れました。

  • 数を20件にしぼる。 集めすぎないためです。
  • 値段は「数字だけ」と指定する。 「¥25,000」のような文字のままだと、あとで平均を計算できません。
  • 集めない情報もはっきり書く。 個人に関わる情報を、最初から集めないためです。

! つまずきポイント

Windowsの場合、この命令は途中で改行せず、1行のまま貼り付けてください。インターネット上の解説では、命令の途中に \ を入れて改行していることがありますが、PowerShellではこれが使えません。

Enterを押すと、AIがスクレイパーを作り始めます。完成までは 約7分 かかりました。その間、画面には「Generating scraper...(作成中)」という表示が流れ続けます。

image.png

「Done(完成)」と表示されたら完了です

完成すると、c_mv6pwg3fx13f9uter のような番号(Collector ID)が表示されます。これが、今作ったスクレイパーの番号です。次からは、この番号を指定するだけで同じスクレイパーを呼び出せます。メモ帳などに必ず保存しておきましょう。

③ データを集める:番号を指定して動かす

ここから作ったスクレイパーを動かしていきます。

bdata scraper run c_mv6pwg3fx13f9uter "(同じ検索結果のURL)" --pretty -o result.json

こちらも 約7分 で終わり、エラーもなく result.json というファイルに結果が保存されました。

image.png
「Output written to result.json(結果を保存しました)」と出れば完了です

④ 中身を確認したら、足りなかった

ところが、result.json をメモ帳で開いてみると、こうなっていました。

お願いしたこと 実際の結果
最初の20件 15件しか取れていない
販売状況(売り切れか販売中か) 項目そのものが無い(15件すべて)
ブランド 15件中3件が空っぽ
商品名・値段・状態・カテゴリ 15件すべて取れている
出品者名などの個人情報 入っていない(お願いどおり)

エラーは1つも出ていません。 黒い画面だけ見ていたら、「成功した!」と思って次に進んでしまうところでした。

もう1つ気づいたのが、商品名の中に 「〇〇様専用」のような、人の呼び名 が入っていたことです。出品者の名前は集めていなくても、出品者が商品名に書いた文字はそのまま入ってきます。これは、AIに渡す前に消す必要があります。

⑤ 自動修理(Self-Healing)を試してみた

ポイント:Self-Healing(自動修理)のあと、件数は「作業中の版」(--version=dev)を指定したときだけ20件に増えましたが、販売状況は最後まで0件のままでした。

Scraper Studioには、こわれたスクレイパーをAIが直してくれる 「Self-Healing(自動修理)」 という機能があります。足りなかった「販売状況」と「件数」を、これで直してもらいました。

bdata scraper heal c_mv6pwg3fx13f9uter "販売状況(売り切れか販売中か)の項目が出力に含まれていない。各商品ページのSOLD表示などから sales_status という項目名で取得して。また、検索結果の最初の20件を取得するはずが15件しか取れていないので、20件取れるようにして。出品者名など個人に関する情報は引き続き取得しないで。" --url "(同じ検索結果のURL)" --pretty -o heal.json --timeout 1200

ここでも、何が足りないのかを日本語で具体的に伝える のがポイントです。

約8分後、「awaiting approval(承認待ち)」と表示されました。これは失敗ではなく、「こう直しました。これでいいですか?」と確認を求めている状態です。

image.png
「直し方ができたので、承認してください」という状態

heal.json に入っていた見本のデータには、ちゃんと販売状況("sales_status":"sold_out"、つまり「売り切れ」)が入っていました。中身を確認してから、承認の命令を実行します。

image.png

緑色で「Scraper healed(修理完了)」と表示されました

ところが、もう一度動かしてみると……

直ったはずのスクレイパーで、もう一度データを集めてみました。

image.png

修理後の実行は約3分で終わりました

結果をグラフにすると、こうなりました。

image.png

件数・値段・販売状況が、それぞれ何件取れたか

ふつうに実行すると、件数は15件のままで、販売状況も0件のまま。直っていませんでした。

調べてみると、Bright Dataのスクレイパーには 「作業中の版」と「本番の版」 があることが分かりました。そこで「作業中の版」を指定して動かすと、件数は目標の20件になりました。修理の一部は、作業中の版にだけ入っていたようです。

ただし、販売状況はどの方法でも、最後まで0件のままでした。

image.png

作業中の版を指定して実行した画面

! つまずきポイント

作業中の版を指定するときは、--version=dev のように = でつなぎます。--version dev とスペースで区切ると、道具のバージョン番号(0.4.0)が表示されるだけで、スクレイパーは動きません。私はここで一度ハマりました。

ここで分かったのは、「見本では直っていた」と「本番で直った」は別 ということです。修理したら、必ずもう一度動かして中身を見る。これを飛ばすと、こわれたデータのままAIに渡してしまうところでした。

今回はここでデータ集めを終えることにしました。販売状況は、検索するときにすでに「売り切れ」で絞り込んでいるので、あとから補うことができます。

▶ Self-Healing(自動修理)や「作業中の版」の仕組みは、公式ドキュメントで確認できます:Scraper Studio の公式ドキュメントを見る

⑥ データを整える(クレンジング)

ポイント:ジャンク品・別の機種・ソフトや付属品などを外すと、残ったのは有機ELモデル本体の7件でした。全件の平均は、実際の相場より約7,000円安くなっていました。

ここからは、集めたデータを整える作業です。Claude Codeに日本語でお願いして、やってもらいました。

整える前のデータを、値段の高い順に並べてみます。

image.png

青が今回知りたい「有機ELモデルの本体」、灰色はそれ以外の物

「Nintendo Switch 有機ELモデル 本体」で検索したのに、ジャンク品(こわれている物)、別の機種、ソフト、充電器、ケースまで混ざっています。これをそのまま平均すると、正しい相場になりません。

そこで、次のように整えました。

  • 商品名から「〇〇様専用」などの呼び名を消す
  • 値段が取れていない商品を外す(4件)
  • ジャンク品、別の機種、ソフトや付属品を、相場の計算から外す(9件)
  • 販売状況を「売り切れ」と書き足す(検索の時点で絞り込んでいるため)
  • 商品の状態を、社内の「状態ランク」に置きかえる
  • 集めた日付(2026年10月13日)を書き足す

結果、残ったのは 有機ELモデルの本体7件 です。整える前と後で、平均の値段を比べてみます。

image.png

件数は減っても、こちらの方が実際の相場に近い

何も考えずに全部の平均を出すと、実際の相場より 約7,000円も安く なってしまいます。AIは渡されたデータをそのまま信じて答えるので、ここで手を抜くと、もっともらしい間違いを答えてしまいます。

外のデータを「社内の言葉」に置きかえる

もう1つ大事なのが、メルカリの表現と、社内の言葉を対応させることです。

メルカリの「目立った傷や汚れなし」が、社内の何ランクにあたるのかは、決めておかないとAIには分かりません。今回は、記事用に次のような対応表を作りました(実在の会社のルールではありません)。

メルカリの表現 社内のランク(例)
新品、未使用/未使用に近い A
目立った傷や汚れなし B
やや傷や汚れあり/傷や汚れあり C
全体的に状態が悪い D

ランクBの6件だけを見ると、値段は21,500〜28,500円、真ん中の値(中央値)は 24,000円 でした。

⑦ AIに聞いてみる

ポイント:社内ルール(ランクBは基準価格から10%引き)と、売り切れ6件の中央値24,000円を渡すと、AIは買取の目安を21,600円と根拠つきで答えました。

最後に、整えたデータと社内のルールをAIに渡して、質問してみます。

AIが探しやすい形にする

AIに渡す前に、データを 「1商品=1枚のカード」 に分けました。専門的には「チャンク化」と呼ばれる作業です。1枚のカードには、こんな内容を書きます。

商品名:Nintendo Switch 有機ELモデル ホワイト
価格:25,000円(売り切れ)
状態:目立った傷や汚れなし(社内ランクB)
取得日:2026-10-13
出典:https://jp.mercari.com/item/(商品の番号)

さらに、それぞれのカードに 「どこから来た情報か」の札 を付けておきます。社内の資料なら「社内」、メルカリのデータなら「メルカリ」です。こうしておくと、AIが答えるときに「社内のルールではこう」「市場の値段はこう」と分けて説明できます。

今回は仕組みを試すのが目的なので、カードを探すのには、文字の似ている度合いで探す簡単な方法を使いました。会社で本格的に使う場合は、文章の意味の近さで探せる、専用の検索の仕組みに置きかえます。

質問と答え

次のように質問しました。

Nintendo Switch 有機ELモデルの本体を、目立った傷や汚れなし(ランクB)で買い取るなら、いくらが目安?

AIの答えはこうです。

社内ルールでは、ランクB(目立った傷や汚れなし)は基準価格から10%引きです。基準価格を、直近の売り切れ価格の中央値24,000円(2026年10月13日取得、有機ELモデル本体・ランクB 6件、21,500〜28,500円)とすると、買取の目安は 21,600円 です。

社内のルールと市場の値段を、それぞれ根拠つきで答えてくれました。

ここでもつまずいた

実は、最初からうまくいったわけではありません。

社内のルールとメルカリのデータを区別せずに探させると、上位8件のうち 7件がメルカリのデータで、社内のルールは1件しか出てきません でした。しかも、計算に欠かせない「基準価格は、売り切れ価格の中央値を参考にする」というルールが、探しても見つかりません。質問の文と、文字が似ていないからです。

そこで、次の2つに変えました。

  • 社内のルールとメルカリのデータを、別々に探す。
  • 計算の前提になるルールは、探させずに毎回AIに渡す。 社内のルールは数が少ないので、全部渡しても問題ありません。

かかった時間

ポイント:待ち時間は合計で約28分でした。

作業ごとに待ち時間をまとめると以下の通り。

image.png

どの作業も、命令を打つのは数秒。あとは待つだけです

待ち時間は合計で約28分でした。その間、自分でやることは特にありません。

▶ 集める件数を増やしたときの費用は、Bright Data の公式サイトで料金プランを確認できます:Bright Data の料金プランを確認する(公式サイト)

やってみて分かったこと

1. 「エラーが出ない=成功」ではない

今回いちばん大きな学びです。件数が足りない、項目が無い、値段が空っぽ。どれもエラーにはならず、ファイルを開いて初めて分かりました。AIに渡す前に、件数と空っぽの項目がないかは必ず確認しましょう。

2. 答えに「いつ・何件」を付けると信用しやすい

「24,000円です」と言われるより、「10月13日時点、売り切れ6件の中央値は24,000円(21,500〜28,500円)」と言われた方が、どこまで信じてよいか判断できます。今回は6件と少ないので、本格的に使うなら「件数が少ないときは参考値と伝える」ルールも必要だと感じました。

3. 外と社内をつなぐのは「対応表」

メルカリの表現と社内のランクをつなぐ対応表がないと、AIは2つを結びつけられません。ここは技術の話というより、仕事の現場の人と決めておくことでした。

他のやり方と比べると

やり方 安定して集められるか 手間 向いている場面
質問されるたびに、AIがその場でWeb検索する 不安定(ブロックされやすい) 少ない ちょっと調べたいとき
自分でスクレイパーのプログラムを書く 作り方しだい 多い(サイトが変わるたびに直す) 専門の開発者がいる
Scraper Studioで集めて、定期的にAIに渡す 安定しやすい(ブロック対策込み) 少なめ(こわれたら自動修理) 外のデータを続けて使いたい

なお、利用者の多いサイトは、Bright Dataに「すでに完成しているスクレイパー」が用意されていることがあります。欲しい情報がそれで足りるなら、そちらを使う方が早くて確実です。Scraper Studioは、既製品では欲しい形にならないとき に使うのがよさそうです。

まとめ:取るのはロボット、答えるのはAI、確かめるのは人

振り返ると、自分でやったのは次の3つだけです。

  • 日本語で「この情報を集めて」とお願いする
  • 決まった命令を、黒い画面に貼り付けて実行する
  • 集まったデータを開いて、中身を確かめる

プログラムは1行も書いていません。

一方で、最後の「確かめる」は人にしかできない と実感しました。エラーが出なくても、データが足りないことがある。AIはそれに気づかず、もっともらしく答えてしまう。だからこそ、データの中身を見る、答えに日付と件数を付ける、といった「人が確かめられる仕組み」が大切です。

社内のAIに「外の今」を教えたい人の参考になればうれしいです。

よくある質問(FAQ)

Q. 社内RAGとは何ですか?

A. AIが答える前に、資料を探して読んでから答える仕組みです。今回は社内の査定ルールに加えて、メルカリの売り切れ価格をBright Dataで集めてAIに渡しました。

Q. プログラムを書かずにスクレイパーを作れますか?

A. 作れます。Scraper Studio の bdata scraper create に、URLと「何を集めるか」を日本語で渡すだけで、約7分でスクレイパーができました。自分で書いたプログラムは0行です。

Q. エラーが出なければ、データは揃っていますか?

A. 揃っているとは限りません。今回は20件を頼んで15件、販売状況は0件でしたが、エラーは出ませんでした。AIに渡す前に、件数と空の項目は必ず確認してください。

Q. Self-Healing(自動修理)で直りますか?

A. 一部は直りました。件数は「作業中の版」(--version=dev)で20件になりましたが、販売状況は最後まで取れませんでした。修理のあとは、もう一度動かして中身を確かめてください。

Q. AIが出した買取の目安はいくらでしたか?

A. Nintendo Switch 有機ELモデル本体・ランクB(目立った傷や汚れなし)で21,600円です。2026年10月13日時点の売り切れ6件の中央値24,000円から、社内ルールの10%を引いた値です。

Q. メルカリの情報を集めてもよいですか?

A. 今回は、ログインせずに見られる商品の情報だけを、検索結果1ページ分(20件)にしぼって集めました。出品者の名前などの個人の情報は集めていません。会社で続けて使う場合は、利用規約を確認し、法務の担当者に相談してください。

無料で試す

欲しい情報をWebサイトから集めたいけど、専用のツールが見つからない?

Scraper Studio なら、やりたいことを日本語や英語で伝えるだけで、Webサイトから必要な情報を自動で集める仕組みを作れます。作った仕組みはそのまま使えるほか、必要に応じてコードを編集することもできます。Webサイトのデザインや仕様が変わった場合も、自動で修正に対応。アクセス制限への対策やプロキシ機能も備えています。

クレジットカードの登録も不要です。

👉 Bright Data Scraper Studio を無料で試す

2
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
2
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?