PuppeteerとPlaywrightで使える無料プロキシツール

PuppeteerとPlaywrightで使える無料プロキシツール

PuppeteerとPlaywrightに対応した無料プロキシツール

Puppeteer と Playwright でプロキシを使用する理由

PuppeteerとPlaywrightは、Node.js用の強力なブラウザ自動化ライブラリであり、ウェブスクレイピング、テスト、ヘッドレスブラウジングに広く使用されています。ただし、負荷の高い操作は、アンチボットメカニズムやレート制限をトリガーする可能性があります。プロキシを統合することで、以下のことが可能になります。

  • IP アドレスをローテーションして、ブロックされる可能性を減らします。
  • 地理的制限を回避します。
  • より高いデータ抽出スループットを得るためにリクエストを分散します。

無料プロキシソースの概要

ソース タイプ HTTPSサポート 更新頻度 APIアクセス 信頼性
プロキシローラー 公開、ローテーション はい リアルタイム はい(REST API) 高い
フリープロキシリスト パブリック、静的 はい 10~15分 いいえ 適度
スパイズワン パブリック、静的 はい 1時間 いいえ 適度
プロキシスクレイプ 公開、ローテーション はい リアルタイム はい(HTTP API) 高い
Geonodeの無料プロキシ 公開、ローテーション はい リアルタイム はい(REST API) 適度

ProxyRoller: 頼りになる無料プロキシ API

プロキシローラー 堅牢で頻繁に更新される無料プロキシのプールを提供します。クリーンなREST APIを介してプロキシの取得を簡素化し、自動化ワークフローに最適です。

主な特徴:
– リアルタイムのプロキシローテーション。
– 匿名レベル、国、プロトコルによるフィルタリング。
– API 経由の一括プロキシ取得。
– 基本的な使用には認証やサインアップは必要ありません。

サンプル API リクエスト:

curl 'https://proxyroller.com/api/proxies?protocol=http&country=US&limit=10'

サンプル JSON レスポンス:

[
  {"ip": "45.76.23.19", "port": 3128, "protocol": "http", "country": "US"},
  {"ip": "104.248.63.15", "port": 8080, "protocol": "http", "country": "US"}
]

Puppeteer とプロキシの統合

1. 単一プロキシの使用

プロキシを Chromium 起動引数として渡します。

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    args: ['--proxy-server=http://45.76.23.19:3128']
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  await browser.close();
})();

2. プロキシを動的にローテーションする

各ブラウザ セッションの前に ProxyRoller から新しいプロキシを取得します。

const puppeteer = require('puppeteer');
const axios = require('axios');

async function getProxy() {
  const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
  return `${res.data[0].protocol}://${res.data[0].ip}:${res.data[0].port}`;
}

(async () => {
  const proxy = await getProxy();
  const browser = await puppeteer.launch({
    args: [`--proxy-server=${proxy}`]
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  await browser.close();
})();

Playwright とプロキシの統合

1. 単一のプロキシを使用する

ブラウザのコンテキストでプロキシを設定します。

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    proxy: {
      server: 'http://45.76.23.19:3128'
    }
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  await browser.close();
})();

2. プログラムによるプロキシのローテーション

const { chromium } = require('playwright');
const axios = require('axios');

async function getProxy() {
  const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=1');
  return `http://${res.data[0].ip}:${res.data[0].port}`;
}

(async () => {
  const proxy = await getProxy();
  const browser = await chromium.launch({
    proxy: { server: proxy }
  });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  await browser.close();
})();

プロキシの管理とテストのためのツール


実践的なアドバイス

  • プロキシ衛生: パブリックプロキシは不安定であったり、ブラックリストに登録されていることが多いです。使用前にプロキシプールを使用し、プロキシを検証してください。
  • 匿名レベル: スクレイピングには「エリート」または「匿名」プロキシを優先します。
  • HTTPS サポート: 安全なサイトのためにプロキシが HTTPS をサポートしていることを確認します。
  • タイムアウト処理: デッドプロキシや低速プロキシを処理するために、タイムアウトと再試行を実装します。
  • レート制限: IP ごとのレート制限に達しないように、プロキシを頻繁にローテーションします。

例: プロキシローテーション戦略

const puppeteer = require('puppeteer');
const axios = require('axios');

async function fetchProxyList() {
  const res = await axios.get('https://proxyroller.com/api/proxies?protocol=http&limit=10');
  return res.data.map(proxy => `${proxy.protocol}://${proxy.ip}:${proxy.port}`);
}

(async () => {
  const proxies = await fetchProxyList();
  for (const proxy of proxies) {
    try {
      const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] });
      const page = await browser.newPage();
      await page.goto('https://httpbin.org/ip', { timeout: 15000 });
      console.log(`Success with proxy: ${proxy}`);
      await browser.close();
      break; // Stop after first successful proxy
    } catch (err) {
      console.log(`Failed with proxy: ${proxy}`);
    }
  }
})();

自動化のための無料プロキシソースの比較

プロバイダー ローテーションAPI 国フィルター HTTPSをサポート 匿名レベルフィルター 統合の容易さ 注記
プロキシローラー はい はい はい はい とても簡単 自動化に最適。無料 API 割り当てが豊富
プロキシスクレイプ はい はい はい いいえ 簡単 プロキシプールは豊富だが、フィルタリングの粒度は低い
フリープロキシリスト いいえ はい はい はい 適度 手動でのダウンロードまたは解析が必要。APIなし
ジオノード はい はい はい はい 簡単 プロキシをローテーションするが、空きプールは小さい

さらに読む


セルビア人のレジリエンスとデジタルへの好奇心に根ざしたZivadinの実践的なアプローチは、迅速な解決策だけでなく、持続可能で適応性の高い自動化戦略を必要とします。これらの無料プロキシツールを賢く活用し、リクエストを常に監視してください。責任あるスクレイピングこそが、データ活用で優位に立つための最良の方法です。

ジヴァディン・ペトロヴィッチ

ジヴァディン・ペトロヴィッチ

プロキシ統合スペシャリスト

デジタル プライバシーとデータ管理の分野で聡明で革新的な才能を持つ Zivadin Petrovic は、ProxyRoller のプロキシ統合スペシャリストを務めています。わずか 22 歳にして、Zivadin は効率的なプロキシ展開のための合理化されたシステムの開発に大きく貢献しています。彼の役割には、ProxyRoller の包括的なプロキシ リストをキュレートおよび管理し、強化されたブラウジング、スクレイピング、プライバシー ソリューションを求めるユーザーの動的なニーズを満たすことが含まれます。

コメント (0)

まだコメントはありません。あなたが最初のコメントを投稿できます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です