2024年にPlaywrightでCloudflareを解決する方法

Sora Fujimoto
AI Solutions Architect
10-Sep-2024

ご存知のとおり、障害を出し抜くことには、特にその障害がCloudflareのようなデジタルゲートキーパーの場合、ある種の興奮があります。ウェブタスクの自動化を試みる際にCloudflareチャレンジに遭遇したことがあるなら、あなただけではありません。私も何度も経験してきました。しかし、2024年にはゲームが変わりましたし、ツールも変わりました。PlaywrightでCloudflareをどのように攻略してきたかを説明させてください。そして、もちろん、話題の新しいCloudflare Turnstileについても触れていきましょう。
Cloudflareとは何か、なぜ重要なのか
Cloudflareチャレンジを解決する方法の詳細に入る前に、何が問題なのかを理解しておきましょう。Cloudflareは、悪意のあるトラフィック、DDoS攻撃、その他のさまざまな脅威から保護するために、数百万のウェブサイトで使用されている強力なセキュリティサービスです。自動スクリプトがページにアクセスしようとするなど、異常な動作を検出すると、CAPTCHAの形でチャレンジを提示し、人間でありボットではないことを確認します。
しかし、重要な点は、Cloudflareはもはや単純なCAPTCHAを提示するだけではないということです。2024年には、Cloudflare Turnstileと呼ばれる、より洗練され適応性の高いチャレンジシステムが導入されました。これは、自動化に対してより強固な設計となっています。難しい課題ですが、正しい方法で取り組めば、克服することができます。

厄介なCAPTCHAを完全に解決できないことで、何度も失敗に悩んでいますか?
CapsolverのAIを搭載した自動Webアンブロックテクノロジーで、CAPTCHAを自動的にシームレスに解決しましょう!
最高のCAPTCHAソリューションのためのボーナスコードを請求しましょう。CapSolver: WEBS。コードを適用すると、チャージごとに5%のボーナスが追加され、無制限となります。
なぜPlaywrightが2024年のツールとして最適なのか
「なぜPlaywrightなのか?なぜ従来のSeleniumやPuppeteerを使い続ける必要があるのか?」と思われるかもしれません。それは当然の疑問です。Playwrightがウェブ自動化の強力なツールとして台頭し、Cloudflareによって提示されるような最新のチャレンジに対する特に効果的な機能を提供するようになったからです。
Playwrightは複数のブラウザコンテキストをサポートしているため、より効果的に異なるユーザーをシミュレートすることができます。また、ブラウザの動作をより詳細に制御できるため、Cloudflareの高度なセキュリティ対策に対処する際には不可欠となる、実際のユーザーの操作を模倣することが容易になります。
はじめましょう:Playwrightの設定
まず、まだインストールしていない場合は、Playwrightをインストールする必要があります。設定は簡単です。
bash
npm install playwright
インストールが完了したら、ウェブタスクの自動化を開始できます。しかし、Cloudflareチャレンジ、特に新しいTurnstile CAPTCHAを回避することが目標の場合、さらにいくつかの手順が必要です。**CapSolver**を利用します。これは、TurnstileなどのCAPTCHAを解決するために設計されたサードパーティのAPIであり、Playwrightと統合してCloudflareで保護されたサイトにアクセスします。
ステップ1:サイトキーの取得
Turnstile CAPTCHAで最初に直面する障害は、ウェブページからsiteKey
を取得することです。このキーは、CapSolverがCAPTCHAを処理して有効なトークンを提供するために不可欠です。
ウェブページのソースコードを検査するか、もっと簡単に、CapSolver拡張機能を使用することで、siteKey
を取得することができます。この拡張機能は、ページ上のCAPTCHAパラメータを自動的に検出します。設定方法の詳細については、ブログ記事を参照してください:Cloudflare Turnstileパラメータの識別。
siteKey
を取得したら、次のステップに進みます。
ステップ2:CapSolver APIを呼び出してCAPTCHAを解決する
siteKey
を入手したら、CapSolverのAPIを使用してTurnstile CAPTCHAを解決し、有効なトークンを取得します。このトークンは、チャレンジを回避してウェブスクレイピングや自動化タスクを続行するために使用されます。
以下は、axiosとPlaywrightを使用してCapSolverとやり取りするためのコードスニペットの例です。
javascript
const axios = require('axios');
const playwright = require("playwright");
const api_key = "YOUR_API_KEY"; // CapSolver APIキー
const site_key = "0xxxxxx"; // 取得したサイトキー
const site_url = "https://xxx.xxx.xxx/xxx"; // ターゲットウェブサイトのURL
const proxy = "http://xxx:[email protected]:x"; // オプション:必要に応じてプロキシを使用
async function solveCaptcha() {
const payload = {
clientKey: api_key,
task: {
type: 'AntiTurnstileTaskProxyLess',
websiteKey: site_key,
websiteURL: site_url,
metadata: {
action: '', // オプション、必要に応じて指定
type: "turnstile"
}
}
};
try {
const res = await axios.post("https://api.capsolver.com/createTask", payload);
const task_id = res.data.taskId;
if (!task_id) {
console.log("タスクの作成に失敗しました:", res.data);
return;
}
console.log("タスクが作成されました。トークンを待っています...");
while (true) {
await new Promise(resolve => setTimeout(resolve, 1000)); // 1秒待ってから再度確認
const getResultPayload = {clientKey: api_key, taskId: task_id};
const resp = await axios.post("https://api.capsolver.com/getTaskResult", getResultPayload);
if (resp.data.status === "ready") {
console.log("CAPTCHAが解決され、トークンを受信しました:", resp.data.solution.token);
return resp.data.solution.token;
}
if (resp.data.status === "failed" || resp.data.errorId) {
console.log("CAPTCHAの解決に失敗しました!応答:", resp.data);
return;
}
}
} catch (error) {
console.error("CAPTCHAの解決中にエラーが発生しました:", error);
}
}
このコードでは、siteKey
とアクセスしたいウェブサイトのURLを渡して、CapSolverのAPIにPOSTリクエストを送信することで、タスクを作成します。タスクが作成されると、CapSolverが解決トークンを返すまで、ステータスを継続的に確認します。このトークンは、Cloudflareに人間であることを証明するために使用されます。
ステップ3:Playwrightを使用してCAPTCHAトークンを注入する
CAPTCHAトークンを取得したら、Playwrightを使用してセッションにクッキーとして注入する必要があります。これにより、Cloudflareの保護によってブロックされることなく、サイトをナビゲートできます。手順は以下のとおりです。
javascript
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms));
async function accessSiteWithToken(){
let clearanceCookie;
// CAPTCHAを解決してトークンを取得
await solveCaptcha().then(token => {
clearanceCookie = token;
});
const browser = await playwright.chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await wait(500);
// トークンをクッキーとして注入
await page.setCookie({
name: "cf_clearance",
value: clearanceCookie,
url: site_url, // ターゲットURLと一致することを確認
domain: "xx.xx.xx" // 実際のサイトに合わせてドメインを調整
});
await wait(500);
// クッキーを設定したら、ウェブサイトにナビゲート
await page.goto(site_url);
// これで、コンテンツをスクレイピングしたり、ページと自由にやり取りしたりできます
console.log("ウェブサイトにアクセスできました!");
await browser.close();
}
// スクリプトを実行してサイトにアクセス
accessSiteWithToken().then();
まとめ
Cloudflareは、2024年にウェブサイトをスクレイピングしたり、タスクを自動化したりすることを難しくしましたが、PlaywrightやCapSolverなどのツールを使用すれば、決して不可能ではありません。Playwrightは実際のユーザーの操作をシミュレートする能力と、CapSolverはCAPTCHA解決APIを提供することで、これらの障壁を簡単に克服できる強力な方法を提供します。
もちろん、常に法律と倫理的なスクレイピング慣行の範囲内で行動していることを確認する必要があります。一部のウェブサイトには、自動アクセスに関する厳しいポリシーが設定されているため、先に進む前に確認しておきましょう。
常に進化を続けるウェブ自動化の世界では、常に一歩先を行くことが重要です。PlaywrightとCapSolverがあれば、まさにそれを実現できます。
コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。
もっと見る

Webスクレイピングは合法か? 2025年版包括ガイド
2025年ウェブスクレイピングの法的課題:主要な規制、コンプライアンス、および事例研究

Sora Fujimoto
24-Jan-2025

2025年reCAPTCHA認識のためのトップ5 CAPTCHAソルバー
2025年トップ5のCAPTCHAソルバー(AI駆動型CapSolverによる高速reCAPTCHA認識を含む)を探求し、速度、価格、精度を比較しましょう

Anh Tuan
23-Jan-2025

reCAPTCHA認識とは?初心者向けガイド
reCAPTCHA画像グリッドに苦戦していませんか?CapsolverのAI搭載認識機能が「すべて選択」の課題を瞬時に解決する方法をご覧ください。API統合、ブラウザ拡張機能、CAPTCHA解決を95%以上の精度で自動化するためのプロのヒントを学びましょう。

Ethan Collins
23-Jan-2025

reCAPTCHAサイトキーとは何か、そしてどのように見つけるのか?
reCAPTCHAサイトキーを手動またはCapsolverなどのツールを使って見つける方法、よくある問題の解決策、開発者やウェブスクレイピングのためのCAPTCHA自動化について学びましょう。

Anh Tuan
23-Jan-2025

2025年のWebスクレイピングにおけるCloudflareチャレンジの回避方法
2025年におけるCloudflareチャレンジとTurnstileの回避方法を学び、シームレスなウェブスクレイピングを実現しましょう。Capsolverとの統合、TLSフィンガープリンティングのヒント、CAPTCHA地獄を回避するための一般的なエラー修正方法を紹介します。時間を節約し、データ抽出をスケールアップしましょう。

Ethan Collins
23-Jan-2025

Webスクレイピングにおける画像CAPTCHAの解き方:2025年完全ガイド
CapSolverを使って2025年に画像CAPTCHAを効果的に解決する方法を学ぶ

Sora Fujimoto
23-Jan-2025