Playwright を使用して CAPTCHA を回避する方法

Advanced Bot Mitigation Engineer
ウェブサイトスクレイピング中にCAPTCHAに阻まれたことはありますか?このような困難は、データ収集の自動化において頭痛の種となる可能性があります。幸いなことに、Playwrightを使用してCAPTCHAを回避する方法は2つあり、この記事ではその方法について詳しく解説します。
PlaywrightはCAPTCHAを解決できますか?
CAPTCHAは、ボットにとっては難しいものですが、人間にとっては簡単であるように設計されています。しかし、Playwrightを他の便利なツールと組み合わせてCAPTCHAを回避する方法についても見ていきます。
重要な教訓は、次のいずれかの方法をとれるということです。A) CAPTCHAが出現したときにすぐに解決する、またはB) CAPTCHAを完全に回避し、出現した場合は再度試みる。
最初のシナリオでは、Playwright CAPTCHAソルバーを使用する必要がありますが、大量に使用する場合は費用がかかる可能性があります。2番目のシナリオでは、検出を回避するために、スクレイパーは人間の行動をよりよく模倣する必要があります。どちらの方法も紹介しますが、出発点としては2番目の方法が最適です。
では、これらの方法を実践する方法を見ていきましょう。
方法1: PlaywrightとCAPTCHAソルバーを使用してCAPTCHAを回避する。
最初に紹介する方法は、PlaywrightとScrapelessを組み合わせる方法です。Scrapelessは、人間の力を活用してCAPTCHAを解決するサービスです。
CAPTCHAや継続的なウェブサイトスクレイピングブロックにうんざりしていませんか?
Scrapeless: 最も優れたオールインワンのオンラインスクレイピングソリューション!
強力なツールキットを活用して、データ抽出の可能性を最大限に引き出しましょう。
最高のCAPTCHAソルバー
複雑なCAPTCHAを自動的に解決し、スムーズなスクレイピングを継続的に実現します。
無料でお試しください。
方法2: Playwrightでステルスプラグインを使用する。
より高度なCAPTCHA対策を導入したウェブサイトからデータをスクレイピングする必要がある場合、以前のPlaywrightのセットアップではうまくいきませんが、Stealthプラグインは有効な回避策となります。このオープンソースプロジェクトは、Playwrightに現実のウェブトラフィックに近づけるための要素を追加します。
- ユーザーエージェントが隠されます。
- IPアドレスの特定を防ぐため、WebRTCが無効になります。これは、追跡スクリプトを明確に禁止していなくても、閲覧履歴を隠すことでプライバシーを保護します。
- リクエストをより自然に見せるために、ヘッドレスブラウザに追加のコンポーネントを追加します。
- 例にさらに活力を与えるために、Cloudflareのセキュリティが最小限のウェブサイトであるAstraを試してみましょう。
プロジェクトフォルダ内で以下のコマンドを実行して、開始前に必要な依存関係をインストールします。
language
npm install playwright playwright-extra
playwright-extra
フレームワークにStealthプラグインが含まれていることに注意してください。
Playwrightを強化するために、playwright-extra
を使用してヘッドレスChromeブラウザを起動し、chromium.use(pluginStealth)
を使用してpuppeteer-extra-plugin-stealth
を有効にします。この技術セットは、ウェブサイトがウェブスクレイパーを特定することをより困難にするためのさらなる保護を提供します。
language
const { chromium } = require('playwright-extra')
// Stealthプラグインをロードし、デフォルトを使用します(Playwrightの使用を隠すためのすべてのトリック)
const pluginStealth = require("puppeteer-extra-plugin-stealth");
// Stealthを使用
chromium.use(pluginStealth)
// これで完了です。残りは通常のPlaywrightの使用です😊
chromium.launch({ headless: true }).then(async browser => {
// 新しいページを作成
const page = await browser.newPage()
// ウェブサイトにアクセス
await page.goto('https://www.scrapeless.com/')
// ページのダウンロードを待つ
await page.waitForTimeout(1000);
// スクリーンショットを撮る
await page.screenshot({ path: 'screen.png'})
// ブラウザを閉じる
console.log('すべて完了しました。スクリーンショットを確認してください。✨')
await browser.close()
})
ブラウザの browser.newPage()
で新しいページが読み込まれ、page.goto()
メソッドが呼び出された後、当社のウェブサイトはスクレイピングの準備が整っています。
まとめ
PlaywrightでCAPTCHAを回避するのは難しい場合があります。これは、このよく知られた障害が、ウェブサイトへの自動アクセスを阻止することを目的としているためです。しかし、適切なツールとライブラリがあれば、必要なデータをスクレイピングすることができます。
Scrapeless では、適用される法律、規制、および Web サイトのプライバシー ポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツはデモンストレーションのみを目的としており、違法または侵害的な活動には関与していません。 私たちは、このブログまたはサードパーティのリンクからの情報の使用についていかなる保証もせず、一切の責任を負いません。 スクレイピング活動を行う前に、法律顧問に相談し、対象となる Web サイトの利用規約を確認するか、必要な許可を取得してください。