演出家の検出されないフィンガープリンターブラウザ Scrapeless とともに
Specialist in Anti-Bot Strategies
TL;DR:
- Playwrightは、
chromium.connectOverCDP()を使用して任意のCDPブラウザに接続できるため、Scrapelessを指すのは1つのURLです。 ローカルのchromium.launch()をクラウドブラウザへの接続に置き換えることで、すべてのスクリプトがクリーンなアイデンティティで実行されます。 - ローカルのPlaywrightブラウザは、3つの軸で自動化を漏洩します:
navigator.webdriverフラグ、ヘッドレスデフォルトのフィンガープリント、および自身の出口IPです。アンチボットシステムは、これら3つを組み合わせてスコアリングします。 - Scrapeless Scraping Browserは、すべてのサーバーサイドの問題に対応します — 自前のChromiumを使用し、一貫したセッションごとのフィンガープリントで
webdriverの兆候がなく、195か国以上での住宅地からの出口があります。 - Playwrightのコードは変更されません。
page.goto、page.locator、page.evaluate、および待機は、ローカルと同じように動作します; 接続行だけが移動します。 - 確認されたライブ:
connectOverCDP()セッションは、navigator.webdriverをfalseとして読み取り、Scrapelessクラウドブラウザを介してターゲットページの実際のタイトルを返しました。 - 無料で開始。 新しいScrapelessアカウントには無料のScraping Browserランタイムが含まれています — app.scrapeless.comでサインアップしてください。
はじめに:クリーンに読むブラウザにPlaywrightを接続する
Playwrightは、単一のAPIを通じてChromium、Firefox、またはWebKitを制御します。独自のマシンでChromiumを起動すると、すべてのスクリプトは自動化を明らかにする信号を引き継ぎます:それは、the navigator.webdriver propertyを介して自らを告知し、ヘッドレスデフォルトのフォントとキャンバス動作を搭載し、評判サービスですでに認識されているIPから退出します。
これらを手動でパッチして、Chromiumと検出器が動くたびにそれを維持することができますが、より短い道があります。Playwrightは、chromium.connectOverCDP()を通じてDevToolsエンドポイントを公開する任意のブラウザに接続し、Scrapeless Scraping Browserは、1つのWebSocket URLを介して到達するChrome DevTools Protocolエンドポイントです。Playwrightをそれに向けると、フィンガープリント、行動表面、出口IPがサーバーサイドに移動 — スクリプトはそのままです。
それを使ってできること
- アンチボット保護されたサイトに対してスクリプトを実行 — クラウドブラウザはレンダリングの間にチャレンジをクリアするため、
page.gotoはコンテンツに到達します。 - セッションをローカライズ —
proxyCountryを固定して、ページがその市場の訪問者が見る方法で解決されるようにします。 - 一貫したフィンガープリントを送信 —
fingerprintオブジェクトを渡して、ユーザーエージェント、プラットフォーム、スクリーン、タイムゾーンが一貫性を保ちます。 - ログイン状態を持続 —
profileIdを持参して、クッキーとローカルストレージが実行間で生き残るようにします。 - 自分のマシンを超えてスケール — セッションはクラウドで実行され、ラップトップ上ではありません。
- 自動化を同一に保つ — ロケーター、
page.evaluate、クリック、及び自動待機は変更されません。
なぜScrapeless Scraping Browserか
Scrapeless Scraping Browserは、ウェブクローラーとAIエージェントのために設計されたカスタマイズ可能な、アンチ検出クラウドブラウザです。特にPlaywrightに対しては、次のような利点があります:
- 実際の独自開発によるChromiumは、ページJavaScriptをChromeとまったく同じように実行し、SPAや挑戦を解決します。
- 一貫したセッションごとのフィンガープリント —
navigator.webdriverの兆候はなく、ヘッドレスデフォルトが漏れません。 - 195か国以上での住宅出口 — セッションごとに1つの
proxyCountry値で選択されます。 profileIdを介したセッションの持続性 — 認証フローがその状態を保ちます。- 1つの接続面 — すべてのオプションは同じWebSocketエンドポイントでのクエリパラメータです。
無料プランでAPIキーを取得するには、app.scrapeless.comをご覧ください。
前提条件
- Node.js 18以降
playwright-coreインストール済み(バンドルされたブラウザは不要 — リモートブラウザに接続)- ScrapelessアカウントとAPIキー — app.scrapeless.comでサインアップ
完全な接続の詳細は、Scraping Browserのドキュメントにあります。
インストール
playwright-coreを使用してください — クラウドにChromiumが存在するため、ブラウザのダウンロードをスキップします。
bash
npm install playwright-core
export SCRAPELESS_API_KEY=your_api_token_here # 無料キーは https://app.scrapeless.com で取得
接続の設定
エンドポイントはwss://browser.scrapeless.com/api/v2/browserであり、すべてのオプションはクエリパラメータです。proxyCountryを住宅地域に固定します。
javascript
import { URLSearchParams } from "node:url";
function scrapelessEndpoint(extra = {}) {
```javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180", // 秒
proxyCountry: "US",
...extra,
});
return `wss://browser.scrapeless.com/api/v2/browser?${params}`;
}
接続して実行する
chromium.launch()をchromium.connectOverCDP()に置き換え、エンドポイントを渡します。それ以降はすべて標準的なPlaywrightです。
javascript
import { chromium } from "playwright-core";
import { URLSearchParams } from "node:url";
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.newPage();
await page.goto("https://www.scrapeless.com/en", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("title:", await page.title());
console.log("navigator.webdriver:", await page.evaluate(() => navigator.webdriver));
await browser.close();
このスクリプトを実行すると、ページタイトルEffortless Web Scraping Toolkit - Scrapelessとnavigator.webdriver: falseが出力されました。これは、すでに使用しているのと同じPlaywright APIで、クラウドブラウザを通じて取得されたものです。
無料プランのAPIキーを取得する: app.scrapeless.com
一貫したフィンガープリンティングを送信する
fingerprintオブジェクトは、ブラウザが広告するアイデンティティを一貫させます—ユーザーエージェント、プラットフォーム、画面、タイムゾーンがすべて一致しています。それをJSONエンコードし、URLエンコードして、もう1つのパラメータとして渡します。W3C WebDriver仕様は、遵守する自動化がwebdriverフラグを公開する必要があると要求します。クラウドブラウザはそれを持っていないため、送信したフィンガープリントに矛盾するものはありません。
javascript
const fingerprint = {
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
platform: "Windows",
screen: { width: 1920, height: 1080 },
localization: { languages: ["en-US", "en"], timezone: "America/New_York" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });
ローカルPlaywrightが終了する場所
自分のChromium上でPlaywrightを実行するのは、オープンで保護されていないページには問題ありません。摩擦が発生するのは、ターゲットがブラウザをスコアリングしたときです:データセンターのIPで停滞するチャレンジインタースティシャル、ヘッドレスデフォルトのフィンガープリンティングを行うページ、訪問の間に安定したアイデンティティを求めるログインウォール。各々はフィンガープリンティング、行動、IPの問題であり、まさにクラウドブラウザがサーバーサイドで処理する3つの問題です。Scrapelessに接続すると、ロケータやpageの呼び出しをそのままに、これらのケースを管理されたセッションに引き渡します。
返ってくるもの
セッションは、他のPlaywrightセッションと同様に動作します—ロケータ、page.goto、page.evaluate、自動待機、クッキーなどがすべて機能します。クラウドブラウザで実行した際のいくつかの誠実な観察結果:
- **
navigator.webdriverはfalse**ですので、サイトが最初に実行するチェックは実際のChromeのように見えます。 connectOverCDPは通常のBrowserを返します —newPage、コンテキスト、ロケータは変更されません。- 出口IPは
proxyCountryと一致します — 地理的制限のあるページは、ローカルの訪問者が見るように表示されます。 - 頑固なページのためにセッションを温めます — 保護されたページの前にサイトのホームページを先にロードして、行動面が通常の訪問のように見えるようにします。
結論:同じPlaywright、クリーンなブラウザ
Playwrightが何をするかを決定します;Scrapelessがサイトに対してブラウザがどのように見えるかを決定します。統合は1行で完了します—クラウドブラウザに対するchromium.connectOverCDP() — そしてスクリプトの残りは変更されません。proxyCountryを住宅地域に固定し、一貫したfingerprintを渡し、認証フロー用にprofileIdを再利用します。Pythonから同じクラウドブラウザを実行する場合は、Scraplingプロダクションスクレーパーガイドを参照し、Scrapeless料金ページでプランを比較してください。
Playwrightスクレイピングパイプラインを構築する準備はできましたか?
私たちのコミュニティに参加して、無料プランを取得し、Playwrightパイプラインを構築している開発者とつながりましょう: Discord · Telegram。
app.scrapeless.comで無料のスクレイピングブラウザランタイムにサインアップし、connectOverCDP()をターゲットが指紋認証できないクラウドブラウザに向けて設定してください。
FAQ
Q: Playwrightのコードを変更する必要がありますか?
いいえ。ブラウザの取得方法を変更するだけです — chromium.connectOverCDP(endpoint)を使用し、chromium.launch()の代わりにします。その後のすべてのロケーターやpageの呼び出しは同じです。
Q: playwrightとplaywright-coreのどちらを使用すればいいですか?
playwright-coreを使用してください。ローカルブラウザを起動する代わりにクラウドブラウザに接続するため、ブラウザのダウンロードをスキップします。
Q: connectOverCDPはすべてのブラウザエンジンをサポートしていますか?
CDP接続はChromiumベースであり、Scrapelessクラウドブラウザが提供するものです。chromium.connectOverCDP()をエンドポイントに向けて設定してください。あなたのChromium向けのスクリプトは変更せずに動作します。
Q: プロキシは必要ですか?
いいえ。居住者の出口は組み込まれており、proxyCountryを地域またはANYに設定するだけです。別途プロキシを設定する必要はありません。
Q: Playwrightでのウェブスクレイピングは合法ですか?
一般的に、公開されているデータへのアクセスは許可されていますが、ルールは管轄やサイトによって異なります。ターゲットの利用規約を確認し、ロボットの指示を尊重し、敏感な内容については弁護士に相談してください。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



