脚本家でプロキシを使う方法


Playwrightは、ヘッドレスクローム(クロム)、FirefoxとWebKitを制御して、自動化するハイレベルのAPIです.それは、より多くのブラウザの種類を使用して近代的なWebアプリのテストとスクレーピングを自動化することができますように拡張された操り人形として考えることができます.Playwright APIはJavaScriptとtypescript、Python、Cの経線、およびJavaで使用することができます.この記事では、すべてのサポートされているブラウザのPlayWriterでプロキシを設定する方法を示します.

プロキシの設定
Playwrightは類似したAPIによるPitpeteerの後継者と考えられることができます、したがって、多くの開発者は彼らのデータマイニングタスクを自動化している間、一つのページ・アプリケーションデータ抽出と反掻き取り回避のためにそれを使うのを好みます.他方、それは操り人形よりプロキシパラメタをセットアップする異なった方法を持ちます.Jun 2020以前は、プロキシをすべてのブラウザで動作させるためにhuge problemでしたが、幸いにも、APIはブラウザのlaunchメソッドを介してプロキシオプションを渡すために統一されました.すべてのブラウザで試してみましょう.

起動オプションproxyメソッドのproxyオブジェクトで適切なプロキシ設定をoptionsプロパティ内に渡すことができます.
const playwright = require('playwright');

const launchOptions = {
    proxy: {
        server: '222.165.235.2:80'
    }
};

(async () => {
  for (const browserType of ['chromium', 'firefox', 'webkit']) {
    const browser = await playwright[browserType].launch(launchOptions);
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('https://httpbin.org/ip');
    console.log(await page.textContent("*"));
    await browser.close();
  }
})();
その結果、同様の出力が表示されます.
{
  "origin": "222.165.235.2"
}

{
  "origin": "222.165.235.2"
}

{
  "origin": "222.165.235.2"
}
あなたが観察することができるように、すべてのブラウザには、プロキシ設定を渡す異なった方法があります.たとえば、Firefoxは、ブラウザのプロキシを設定するprofile configuration fileを渡す必要があります.

コマンドライン引数(クロムのみ)
また、コマンドライン引数を介してプロキシ設定を渡すことも可能です.以下はクロムプロキシオプションの例を見つけることができます.
const playwright = require('playwright');
const launchOptions = {
    args: [ '--proxy-server=http://222.165.235.2:80' ]
};

(async () => {
  for (const browserType of ['chromium']) {
    const browser = await playwright[browserType].launch(launchOptions);
    const context = await browser.newContext();
    const page = await context.newPage();
    await page.goto('https://httpbin.org/ip');
    console.log(await page.textContent("*"));
    await browser.close();
  }
})();
他のブラウザでは、ネイティブの方法でプロキシパラメータを設定することもできますが、動作はオペレーティングシステムとブラウザのバージョンで異なります.

別のページまたは要求のプロキシ設定を指定する方法
上記のメソッドを使用すると、ブラウザのセッション全体のプロキシ設定を設定できます.我々は、独自の回転プロキシサーバーを設定し、それを使用して、各要求を分離についての情報を共有している.

複雑さの低減
あなたのウェブスクレーパーを簡素化して、データマイニングタスクそのもののためにより多くの時間があるために、あなたは基盤地獄を除去して、ちょうどあなたが本当に成し遂げたいものに集中したいかもしれません(データを抽出してください).
ScrapingAnt APIは、1つのAPI呼び出しだけで目標ページを削る能力を提供します.すべてのプロキシの回転と雲ヘッドレスクロームレンダリングはすでにAPI側で処理されます.あなたはScrapingAnt Javascript clientでどれだけ簡単かをチェックできます.
const ScrapingAntClient = require('@scrapingant/scrapingant-client');

const client = new ScrapingAntClient({ apiKey: '<YOUR-SCRAPINGANT-API-KEY>' });

// Check the proxy address
client.scrape('https://httpbin.org/ip')
    .then(res => console.log(res))
    .catch(err => console.error(err.message));
Scrapingant APIでは、ヘッドレスのブラウザのインフラとメンテナンスを忘れることができます.あなたは、follow here to sign in無料で使用することができますし、APIトークンを取得します.