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();
})();
プロキシの管理とテストのためのツール
- プロキシブローカー: プロキシ サーバーを検索してチェックするための Python ツール。
- プロキシチェッカーオンライン: Web ベースのプロキシ ヘルス チェッカー。
- HTTPビン: 送信 IP を確認するサービス (プロキシの有効性をテストするのに役立ちます)。
実践的なアドバイス
- プロキシ衛生: パブリックプロキシは不安定であったり、ブラックリストに登録されていることが多いです。使用前にプロキシプールを使用し、プロキシを検証してください。
- 匿名レベル: スクレイピングには「エリート」または「匿名」プロキシを優先します。
- 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の実践的なアプローチは、迅速な解決策だけでなく、持続可能で適応性の高い自動化戦略を必要とします。これらの無料プロキシツールを賢く活用し、リクエストを常に監視してください。責任あるスクレイピングこそが、データ活用で優位に立つための最良の方法です。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!