SeleniumとNode.jsを聞ってスクレイピングするHのCAPTCHA盾Q圭隈

Sora Fujimoto
AI Solutions Architect
15-Oct-2024

スクレイピングプロジェクトの羨から、このようなrは參念にもUYがあります。スクレイピングプロジェクトが{にMんでいると、融隼寄楚のCAPTCHAが燕幣され、プロセス畠wが嶄爐気譴襪海箸あります。SeleniumとNode.jsをセットアップし、スクレイパ`が頼莎に嘛しているにもかかわらず、CAPTCHAによってすべてが峭まってしまうのです。その欒屬舛呂茲蛍かります。しかし、伉塘しないでください。この}を盾Qする圭隈はいくつかあります。書晩は、SeleniumとNode.jsを聞喘して、これらのW决CAPTCHAを盾Qし、スクレイピングプロジェクトをスム`ズにMめる圭隈をB初します。
なぜウェブサイトはCAPTCHAを聞喘するのか
盾Q貨に秘る念に、CAPTCHAの贋壓尖喇を尖盾することが嶷勣です。ウェブサイトは、CAPTCHAを聞喘して、繁gのユ`ザ`と徭咼椒奪箸^eしています。揖じIPアドレスからの}技悗離▲セスやその麿の徭啝の孥昨など、夘わしい佩咾奮された栽、CAPTCHAがトリガ`される辛嬬來があります。
これらの碧Mみは、ウェブサイトをスパム、ボットトラフィック、吭のある試咾ら隠oするのに叨羨ちます。これはウェブサイトの侭嗤宀にとっては措いことですが、栽隈議にデ`タにアクセスしてЪする駅勣があるウェブスクレイパ`にとっては、寄きな嬾謁となっています。
愚初なCAPTCHAを頼畠に盾Qできないことで逗蕕靴討い泙擦鵑
CapSolverのAI喜d徭Webブロック室gを聞って、シ`ムレスな徭CAPTCHA盾QをgFしましょう
恷互のCAPTCHAソリュ`ションのためのボ`ナスコ`ドはこちら CapSolver: WEBS。コ`ドを聞喘すると、チャ`ジごとに弖紗で5%のボ`ナスがもらえ、o崙泙吠荒辰任ます。
なぜNode.jsを聞うのか
reCAPTCHAの盾Q圭隈についてしくh苧する念に、Node.jsがこのタスクに恷mなxk岔である尖喇を尖盾することが嶷勣です。
- 掲揖豚來: Node.jsの掲ブロッキングイベントl嗤優〒`キテクチャは、ウェブスクレイピングやAPIリクエストなど、I/O塞の互いI尖に恷mです。つまり、光タスクが桑に頼阻するのを棋つことなく、}方のタスクを揖rにg佩できます。
- N源なエコシステム: Node.jsには、npmNode Package Managerを宥じて、ウェブスクレイピングや徭啝のさまざまな斑罎鮑殆晒する、N源なライブラリやモジュ`ルがあります。これらのライブラリは、HTTPリクエストのI尖、ブラウザの徭啝、CAPTCHAの盾Qなど、さまざまな斑罎鮑殆晒します。
- JavaScriptのy匯: Node.jsを聞喘すると、クライアント箸肇稀`バ`箸I圭でJavaScriptを聞喘できます。このy匯により、コ`ドベ`スを殆晒し、アプリケ`ションのさまざまな何蛍gでロジックとデ`タをgに慌嗤できます。
- パフォ`マンス: Node.jsは、掲揖豚I尖の互堀なI尖と紳偏圓盃られるV8 JavaScriptエンジンをベ`スとしています。これにより、スクレイピングタスクが互堀かつ紳糞弔g佩されます。

SeleniumとNode.jsでCAPTCHAを盾Qできるのか
暴のUYでは、SeleniumとNode.jsをMみ栽わせてCAPTCHAのn}を盾Qすることはg`いなく辛嬬です。ただし、ウェブサイトのセットアップ圭隈によっては、2つのアプロ`チを篇する駅勣があります。
匯何のウェブサイトでは、CAPTCHAは、徭啝されたブラウザの嘛など、械な試咾奮された栽にのみ燕幣されます。このような栽は、徭隼なユ`ザ`の佩咾鯆することで、CAPTCHAを頼畠に盾Qできます。つまり、アンチボットシステムから奮されるのを指閲し、CAPTCHAに壟囑することなくスム`ズにI尖をMめることができます。
しかし、匯何のウェブサイトでは、CAPTCHAがペ`ジにMみzまれ、ボット奮のY惚にvSなく、すべてのL宀に燕幣されます。この栽、コンテンツにアクセスするには、CAPTCHAの}を盾Qする駅勣があります。そのため、ほとんどのスクレイパ`はサ`ドパ`ティのCAPTCHA盾Qサ`ビスを旋喘しています。これは、CAPTCHAの}を盾Qするための恷も麼送かつ森議な圭隈ですが、匯何のサ`ドパ`ティは返恬Iを聞喘しており、堀業がWく、M喘も互いため、お瓩瓩任ません。旗わりに、AI喜d徭Webブロック室gを旋喘している、偏でu登の互い芙をお瓩瓩靴泙后この室gについては、參和でしくh苧します。
參和では、CAPTCHAの燕幣を雙崙する圭隈と、サ`ドパ`ティのUgを宥じて、互堀で屎_なソリュ`ションを寄トに秘する圭隈についてもB初します。Aきをiんで、さらにしく{べていきましょう。
圭隈1: SeleniumとNode.jsでUndetected ChromeDriverを聞喘する
まず、暴が森議だと湖じているo創の圭隈をB初します。SeleniumでUndetected ChromeDriverを聞喘する圭隈です。
このアプロ`チがなぜ嗤燭覆里を尖盾するには、覆Seleniumがどのように嘛するかを恷兜に尖盾する駅勣があります。児云議に、SeleniumはChromeDriverChromiumブラウザを崙囮する弌さなg佩ファイルを聞喘します。このg佩ファイルは、Selenium WebDriverとブラウザ徭悶の嶼初叨を惚たします。
さて、ここで暴が岷中した}です。宥械のChromeDriverは、タ`ゲットサイトにして、徭啝にvする謹くの秤鵑鯊らしています。ウェブサイトにアンチボット貨が仏されている栽、覆ChromeDriverを聞喘すると、しばしばフラグが羨てられます。Cloudflare Turnstile CAPTCHAのような、針捲音辛嬬なn}に岷中するかもしれません。
そこで、Undetected ChromeDriverが叨に羨ちました。これは、宥械のChromeDriverの俐屎井で、奮を指閲するようにOされています。フィンガ`プリントのスプ`フィングや宥械の徭啝シグナルのL盈などのテクニックを聞喘することで、このツ`ルはSeleniumを繁gらしくせかけます。このツ`ルは、宥械のユ`ザ`の佩咾鯆することで、謹くの栽CAPTCHAを盾Qできることに欷兇ました。
ただし、嵐嬬ではありません。Undetected ChromeDriverは、児云議なボット隠oが仏されたサイトではうまくC嬬しましたが、駅ずしも撹孔するとは泙蠅泙擦鵝より互業なシステムを笋┐織汽ぅ箸任蓮△海侶酬┐森議ではない栽もあります。
徭蛍でセットアップしたい栽は、SeleniumとNode.jsでUndetected ChromeDriverを聞喘する圭隈のなガイドを_Jすることをお瓩瓩靴泙后ただし、より嶷に隠oされたウェブサイトの栽、この盾Q貨では音噴蛍な栽があります。
圭隈2: サ`ドパ`ティのCAPTCHA盾Qサ`ビスを聞喘する
Undetected ChromeDriverは、徭隼な佩咾鯆することで、CAPTCHAのn}を盾Qできる栽がありますが、械に佚mできるわけではありません。謹くのウェブサイトでは、より互業なアンチボット隠oが秘されており、どれだけ繁gらしくえても、徭啝ツ`ルを奮できます。この栽、蒙に寄トなウェブスクレイピング荷恬を佩う栽、サ`ドパ`ティのCAPTCHA盾Qサ`ビスを聞喘するのが恷もg喘議な盾Q貨になります。
サ`ドパ`ティのCAPTCHAソルバ`をxkする尖喇
サ`ドパ`ティのサ`ビスが、ウェブスクレイピング嶄にCAPTCHAをI尖するHに、匯違議に挫まれるアプロ`チである尖喇はいくつかあります。
-
屎_來と佚m來: 徭CAPTCHA盾Qサ`ビスは、互業なC亠僥アルゴリズムを試喘して、Google reCAPTCHAやCloudflareのTurnstileなど、}jなCAPTCHAのn}を根む、さまざまなNのCAPTCHAのn}を互い撹孔楕で盾Qします。
-
スケ`ラビリティ: 寄トなスクレイピングプロジェクトでは、Undetected ChromeDriverのようなツ`ルだけにmるのは、佚m來が詰く、rgがかかる栽があります。匯圭、サ`ドパ`ティのサ`ビスは、寄楚のCAPTCHAのn}を恷弌泙離瀬Ε鵐織ぅ爐I尖するようにOされており、スクレイピングタスクがスム`ズに嶄僅されることなくg佩されます。
-
M喘森: 嗤創サ`ビスを聞喘すると、コストが紗すると房うかもしれませんが、rgとリソ`スのsの辛嬬來を深]してください。蒙に寄楚のスクレイピングプロジェクトでは、CAPTCHAを返咾能Qしたり、徭啝エラ`をRり卦しトラブルシュ`ティングしたりするのは、F嶷なrgを惜Mする辛嬬來があります。この何蛍を徭啝することで、CAPTCHA盾Qのロジスティクスに`られることなく、gHのデ`タЪに鹿嶄できます。
-
}気離ΕД屮汽ぅ箸砲ける匯來: さまざまなウェブサイトで婢_されている、reCAPTCHA、captcha、CloudflareなどのさまざまなCAPTCHAのn}は、DIYソリュ`ションでは鬉靴れない栽があります。サ`ドパ`ティのサ`ビスは、謹くの栽、}方のCAPTCHAタイプに鬉靴討り、タ`ゲットサイトでどのような隠oが仏されているかにvSなく、鬉任ます。
サ`ドパ`ティのソリュ`ションが恷も森議な返粁である尖喇についてh苧したので、CAPTCHA盾Q蛍勸のリ`ダ`であるCapSolverをごB初します。
なぜCapSolverなのか
CapSolverは、さまざまなNのCAPTCHAに鬉垢襦互堀で佚m來が互く、スケ`ラブルなサ`ドパ`ティのCAPTCHA盾Qソリュ`ションとして、H羨っています。reCAPTCHA v2またはv3、captcha、恷仟のCloudflare Turnstileなど、どのようなCAPTCHAにしても、CapSolverは鬉任ます。
CapSolverをお瓩瓩垢訐輦匹牢里里箸りです。
-
互堀なサ`ビスと室gサポ`ト
CapSolverは、お人に互堀な鬉紳糞弔淵稀`ビスを戻工することにM薦しています。室gチ`ムは、N源なUYとT岑Rを隔ち、CAPTCHAJR}の盾Qrに、儻堀なサポ`トと盾Q貨を戻工できます。 -
儻堀な厚仟堀業
CapSolverは、薦なOシステムを笋┐討り、サ`ビスの厚仟と隠便が駅勣になった栽に、恷兜に鬉掘CAPTCHAJRアルゴリズムを@A議に個鋲および恷m晒することで、システムがさまざまなCAPTCHAの厚仟に紳糞弔鬉掘屎_なJRY惚を戻工しAけることを隠^します。 -
N源なサ`ビスサポ`トのN
CapSolverは、偏で恷も謹くのNのCAPTCHAJRサ`ビスをサポ`トしているサプライヤ`であり、reCAPTCHA (v2/v3/Enterprise)、captchaNormal/Enterprise、Cloudflare、ImageToText、captcha、captcha V3/V4、captcha Captchaなど、弊順嶄の95%參貧のCAPTCHAニ`ズに鬉任る、すべての麼送CAPTCHAサ`ビスタイプをW_しています。 -
なAPIC嬬とドキュメントチュ`トリアル
CapSolverは、淫凄議なAPIC嬬を戻工しており、_k宀はCAPTCHAJRサ`ビスをgにy栽できます。ドキュメントチュ`トリアルには、APIの児云議な聞喘圭隈だけでなく、互業なO協や匯違議な}盾Q圭隈も根まれており、CapSolverのテクノロジ`をプロジェクトに紳糞弔盆m喘するのに叨羨ちます。 -
サ`ビス
CapSolverは、APIサ`ビスを戻工するだけでなく、プログラミングを岑らなくても聞えるC嬬も戻工しています。これは、掲室g議な宀にとって、CAPTCHAのn}にIするためのより宴旋な圭隈となります。ブラウザC嬬は、恷も匯違議なCAPTCHAのJRをサポ`トしています。
CapSolverをSeleniumとNode.jsにy栽する圭隈
CapSolverをSeleniumとNode.jsのプロジェクトにy栽するのはgです。暴のプロセスから、ステップバイステップでh苧すると肝のようになります。
-
CapSolver SDKをインスト`ルする: まず、プロジェクトディレクトリで肝のコマンドをg佩して、CapSolver Node.js SDKをインスト`ルします。
bashnpm install capsolver-node
-
APIキ`をO協する: SDKをインスト`ルしたら、CapSolverからAPIキ`を函誼する駅勣があります。CapSolverのウェブサイトにアクセスしてアカウントを恬撹し、キ`を函誼します。
-
コ`ド箸CAPTCHAI尖: 暴のプロジェクトでは、肝のようにCapSolverをg廾して、CAPTCHAのn}を盾Qしました。
javascript
// npm install axios
const axios = require('axios');
const api_key = "YOUR_API_KEY"; // gHのAPIキ`に崔きQえてください
const site_key = "0x4XXXXXXXXXXXXXXXXX"; // サイトキ`に崔きQえてください
const site_url = "https://www.yourwebsite.com"; // タ`ゲットサイトのURLに崔きQえてください
async function capsolver() {
const payload = {
clientKey: api_key,
task: {
type: 'AntiTurnstileTaskProxyLess',
websiteKey: site_key,
websiteURL: site_url,
metadata: {
action: '' // オプションのアクションメタデ`タ
}
}
};
try {
const res = await axios.post("https://api.capsolver.com/createTask", payload);
const task_id = res.data.taskId;
if (!task_id) {
console.log("Failed to create task:", res.data);
return;
}
console.log("Got taskId:", task_id);
while (true) {
await new Promise(resolve => setTimeout(resolve, 1000)); // 1昼gW决
const getResultPayload = {clientKey: api_key, taskId: task_id};
const resp = await axios.post("https://api.capsolver.com/getTaskResult", getResultPayload);
const status = resp.data.status;
if (status === "ready") {
return resp.data.solution.token; // 盾Qされたト`クンを卦します
}
if (status === "failed" || resp.data.errorId) {
console.log("Solve failed! response:", resp.data);
return;
}
}
} catch (error) {
console.error("Error:", error);
}
}
capsolver().then(token => {
console.log(token); // 盾QされたCAPTCHAト`クンを竃薦します
});
-
CAPTCHA盾QをSeleniumにy栽する: CAPTCHAの盾Q貨を函誼したら、Selenium WebDriverを聞喘してブラウザに廣秘し、フォ`ムを僕佚してCAPTCHAを盾Qできます。
-
スクレイパ`をg佩する: CapSolverをSeleniumスクリプトにy栽したら、CAPTCHAの形墾を伉塘することなく、スクレイパ`をg佩できます。
CapSolverをスクレイピングプロジェクトにy栽することで、gにCAPTCHAのn}を盾Qし、徭啝をスム`ズかつ紳糞弔g佩できます。
まとめ
ウェブスクレイピング嶄にCAPTCHAをI尖することは、暴が岷中した恷寄のn}の1つですが、m俳なツ`ルを聞喘することで、これらの嬾墾を針捲する圭隈を僥びました。Undetected ChromeDriverを聞喘するか、より埓里淵愁螢紿`ションをxkするかにかかわらず、ウェブスクレイピングの適薦を嶄僅することなく@Aできます。
寄トにスクレイピングを佩う栽は、CAPTCHA盾Qサ`ビスにmることがt苧な誘Yだと深えています。このサ`ビスは互堀で紳糞弔任△蝓▲好羽`ラビリティを深]してOされているため、スクレイパ`はCAPTCHAに哈っかかることなく、デ`タЪに鹿嶄できます。
もし、CapSolverの旋cを徭蛍でしてみたいなら、こちらからサインアップしてください。すぐにCAPTCHAを盾Qできるようになります
コンプライアンス窒並 このブログで戻工される秤鵑蓮秤麑畊のみを朕議としています。CapSolverは、すべてのm喘される隈舵およびヨ討臨駟悗謀めています。CapSolverネットワ`クの音隈、p遁、または喘の朕議での聞喘は鯉に鋤峭され、{砲気譴泙后K修燭舛離ャプチャ盾Qソリュ`ションは、巷慌デ`タのクロ`リング嶄にキャプチャの}を盾QするHに100%のコンプライアンスを_隠しながら、ユ`ザ`エクスペリエンスを鯢呂気擦泙后K修燭舛蓮▲稀`ビスの販ある聞喘をX遒靴泙后Tについては、サ`ビス旋喘シsおよびプライバシ`ポリシ`をごEください。
もっとる

AWS WAFのCAPTCHAをWebスクレイピングrに盾Qする圭隈紺凄議なガイド
CapSolverを喘いたウェブスクレイピングにおけるAWS WAF CAPTCHAの盾Q。紳覆力鯢蓮n}の盾Q、デ`タのシ`ムレスな送れをS隔します。

Sora Fujimoto
17-Sep-2025

SeleniumとNode.jsを聞ってスクレイピングするHのCAPTCHA盾Q圭隈
スクレイピングで@A議にCAPTCHA}に岷中している栽は、佚m來の互い盾Q貨を誼るために、ツ`ルとその互業な室gの聞喘を篇してください。

Sora Fujimoto
15-Oct-2024