2026年にCrawleeプロキシを設定する方法
Senior Web Scraping Engineer
Crawleeでプレミアム住宅プロキシを設定して、IPブロックを回避し、任意のターゲットウェブサイトにわたってウェブスクレイピングを信頼性高くスケールさせましょう。
主なポイント
- Crawleeは、JavaScriptが多用されるサイト向けにPuppeteer/Playwrightの上に構築された現代的なウェブスクレイピングフレームワークです。
- 無料プロキシは信頼性が低く、スクレイピング防止システムによって積極的にブロックされます。
- プレミアム住宅プロキシは、ほとんどのブロック機構を打破する正当なISP割り当てのIPを提供します。
- プロキシ認証には、接続文字列に埋め込まれたユーザー名とパスワードの資格情報が必要です。
- 適切なプロキシ設定により、IPバンやリクエストのタイムアウトなしで大規模なスクレイピングが可能になります。
Crawleeの理解
Crawleeは、クローリングおよびスクレイピングのワークフローを簡素化するウェブスクレイピングフレームワークです。Crawleeは、Puppeteer(Node.js)やPlaywright(Python)などのヘッドレスブラウザ技術に基づいており、ブラウザの自動化、セッション管理、結果の保存を行います。シンプルなHTTPライブラリとは異なり、CrawleeはJavaScriptを実行し、クッキーを管理し、動的コンテンツと相互作用します。これは、クライアントサイドでコンテンツをレンダリングする近代的なウェブサイトにとって重要です。
しかし、ウェブサイトは様々なメカニズムを通じてCrawleeのデフォルトの動作を検出し、ブロックします。標準のユーザーエージェントは、Crawleeスクリプトをボット対策システムに特定します。データセンターのIPアドレスからのリクエストは疑念を引き起こします。Crawleeが迅速に連続したリクエストを行うと、レート制限が発生します。プロキシは、正当な住宅IPアドレスにリクエストを分散させ、実際のリクエスト発信元を隠すことによって、これらの問題を解決します。
無料プロキシの限界
公的なデータベースにリストされた無料プロキシは、コスト意識のある開発者に魅力的に見えます。しかし、重大な欠点を引き起こします:
信頼性のある利用可能性:無料プロキシは頻繁に消えたり、アクセス不能になったりし、スクレaperの途中で中断します。
遅いパフォーマンス:無料プロキシはトラフィックを複数の中間サーバーを通してルーティングし、データ収集を遅延させます。
高いブロック率:ウェブサイトは知られている無料プロキシIPのブロックリストを維持しており、真剣なスクレイピングには無効です。
セキュリティ上の懸念:無料プロキシの運営者は正当な運営を保証できません。一部はトラフィックを傍受したり、マルウェアを注入したりします。
サポートなし:無料プロキシサービスは、問題が発生した場合、顧客サポートを提供しません。
コストのわずかな違いにもかかわらず、Scrapeless Residential Proxiesのような予算に優しいプレミアムプロキシは、無料の代替手段をはるかに上回ります。
プレミアムプロキシの利点
プレミアム住宅プロキシは、Crawleeの運用において正当な利点を提供します:
本物の住宅IP:プロキシは、実際の家庭用インターネットユーザーにISPによって割り当てられたIPアドレスを使用し、本物のトラフィックと区別がつきません。
IPローテーション:スマートな割り当てアルゴリズムが自動的に多様なアドレスを循環させ、特定のIPからの疑わしいパターンの蓄積を防ぎます。
地理的ターゲティング:ターゲットウェブサイトの地理的期待に一致するプロキシロケーションを選択します。
高い稼働率:プロのプロバイダーは99.9%以上の可用性をSLA保護とともに保証します。
スマートルーティング:遅いまたはブロックされた接続を自動的に検出し、回避します。
これらの能力は、Crawleeを広範な手動管理を必要とするツールから、生産グレードのスクレイピングプラットフォームに変えます。
基本的なCrawleeプロキシの設定
Crawleeは、クローラーインスタンスに渡された設定オブジェクトを介してプロキシをサポートします。基本的な構造は、認証付きプロキシURLを要求します:
javascript
import { CheerioCrawler } from 'crawlee';
const crawler = new CheerioCrawler({
proxyUrls: [
'http://username:password@proxy.example.com:8080'
]
});
await crawler.addRequests([
{ url: 'https://example.com/page1' },
{ url: 'https://example.com/page2' }
]);
await crawler.run();
プロキシURLの形式は、標準的なパターンに従います:protocol://[username:password@]host[:port]
Scrapeless Residential Proxiesの設定
Scrapeless Residential Proxiesは、簡単な設定を通じてCrawleeとシームレスに統合されます。自動生成されたプロキシ資格情報を取得するためにアカウントダッシュボードにアクセスしてください:
ステップ1:プロキシジェネレーターにアクセス
スクリプトレスアカウントにログインし、プロキシジェネレーターのダッシュボードに移動します。自動生成された住宅用プロキシ資格情報がページの上部に表示されます。
ステップ2: 資格情報の設定
資格情報管理インターフェイスを通じて、ユーザー名とパスワードを設定します。スクリプトレスは、異なるアプリケーション用に複数の資格情報セットをサポートしています。
ステップ3: プロキシURLのフォーマット
資格情報とプロキシエンドポイントを組み合わせて、有効なプロキシURLを作成します:
http://username:password@superproxy.scrapeless.com:1337
スクリプトレスは、HTTP(ポート1337)およびHTTPS(ポート1338)トラフィック用の個別エンドポイントを提供します。
ステップ4: Crawleeとの統合
プロキシURLをCrawleeの設定に適用します:
javascript
import { PuppeteerCrawler } from 'crawlee';
const proxyUrl = 'http://username:password@superproxy.scrapeless.com:1337';
const crawler = new PuppeteerCrawler({
proxyUrls: [proxyUrl],
useSessionPool: true
});
await crawler.addRequests([
{ url: 'https://target-website.com' }
]);
await crawler.run();
高度なプロキシ設定
複数のプロキシURL: CrawleeはプロキシURLの配列を受け入れ、リクエストを自動的に複数のプロキシに分散させます:
javascript
const crawler = new PuppeteerCrawler({
proxyUrls: [
'http://user1:pass1@proxy1.scrapeless.com:1337',
'http://user2:pass2@proxy2.scrapeless.com:1337',
'http://user3:pass3@proxy3.scrapeless.com:1337'
]
});
ダイナミックプロキシ選択: 複雑なスクレイピング操作の場合、スクリプトレスは対象ウェブサイトの特性に基づいてIP配分を最適化するインテリジェントプロキシ選択を提供します。
地理的ターゲティング: URLパラメータを通じてプロキシの地理情報を指定します:
javascript
const proxyUrl = 'http://username:password@superproxy.scrapeless.com:1337?country=US&state=NY';
このパラメータにより、すべてのリクエストがニューヨークのプロキシを通過し、地域に適した応答を確保します。
認証とセッションの処理
一部のウェブサイトではログイン資格情報が必要です。Crawleeはセッション管理を通じて認証を処理します。プロキシ回転と組み合わせることで、セッションは異なるIPからのリクエスト間でログイン状態を維持します:
javascript
import { PuppeteerCrawler } from 'crawlee';
const crawler = new PuppeteerCrawler({
proxyUrls: ['http://user:pass@superproxy.scrapeless.com:1337'],
useSessionPool: true,
sessionPoolOptions: {
maxPoolSize: 50
}
});
crawler.addPostResponseHandler(async ({ page, session }) => {
// 各セッションは独自のクッキーと認証状態を維持します
if (session.isValid) {
// 認証されたページを処理します
}
});
Crawleeのセッションプールは、セッションごとにクッキーと状態を分離し、IPが回転しても認証が中断されないようにします。
一般的なプロキシの問題を回避する
プロキシタイムアウト: リクエストが頻繁にタイムアウトする場合は、タイムアウト値を増加させます:
javascript
const crawler = new PuppeteerCrawler({
navigationTimeoutSecs: 30,
proxyUrls: [proxyUrl]
});
接続拒否: 資格情報がプロキシプロバイダーの要件に一致していることを確認してください。タイプミスや形式エラーにより、接続が即座に失敗します。
プロキシにもかかわらずのレート制限: プロキシ回転があっても、過剰なリクエストレートはブロックを引き起こします。リクエストの遅延を実装します:
javascript
const crawler = new PuppeteerCrawler({
proxyUrls: [proxyUrl],
handlePageTimeoutSecs: 60,
preNavigationHooks: [
async ({ request }) => {
await page.waitForTimeout(Math.random() * 3000)
}
]
});
ブロックされたプロキシ: 個々のスクリプトレスプロキシがブロックされると、サービスは自動的に異なるアドレスに回転します。ブロックが続く場合はサポートに連絡してください。
包括的なソリューション: スクリプトレスブラウザ
最大の信頼性を求めて、スクリプトレスブラウザは、組み込みのプロキシ回転、JavaScriptレンダリング、およびアンチボットバイパスを備えたPuppeteerの代替を提供します:
ブラウザはプロキシ設定を自動的に処理し、マニュアル設定を排除するとともに、保護されたウェブサイトに対する成功率を向上させます。
設定のテスト
返されたIPアドレスを確認することでプロキシの設定を検証します:
javascript
```ja
const { PuppeteerCrawler } = require('crawlee');
const crawler = new PuppeteerCrawler({
proxyUrls: ['http://user:pass@superproxy.scrapeless.com:1337']
});
crawler.addPostResponseHandler(async ({ page }) => {
const ipInfo = await page.evaluate(() => {
return fetch('https://httpbin.io/ip').then(r => r.json());
});
console.log('リクエストIP:', ipInfo.origin);
});
もし戻ってきたIPがあなたのコンピュータのIPと異なる場合、プロキシは正しく機能しています。もし一致する場合は、リクエストがプロキシをバイパスしています—資格情報や接続の詳細を確認してください。
パフォーマンス最適化
適切に構成されたプロキシは、高パフォーマンスのスクレイピングを可能にします:
- 同時実行性: プロキシの回転を使用する場合、50件以上の並列リクエストを実行します
- 速度: プレミアムプロキシの場合、リクエストの平均は1〜2秒、無料プロキシの場合は5〜10秒です
- 信頼性: プレミアムプロキシは99%以上の成功率、無料または手動プロキシ管理の場合は50〜70%です
これらの改善は、プロキシのコストにもかかわらず、より迅速なデータ収集と低い運用コストに直接つながります。
FAQ
Q: 各Crawleeインスタンスに対して異なるプロキシ資格情報が必要ですか?
A: いいえ。単一のプロキシ資格情報は、無制限のCrawleeインスタンスで機能します。ただし、複数の大規模なスクレイパーを同時に実行する場合、独立したレート制限管理を可能にするために別の資格情報が役立つことがあります。
Q: Scrapelessのプロキシを他のプロキシプロバイダーと混ぜてもいいですか?
A: はい。Crawleeは多様なプロキシURLの配列を受け入れ、自動的にリクエストを分散させます。ただし、複数のプロバイダーを管理することは複雑さを増します。単一プロバイダーのソリューションは通常、より信頼性があります。
Q: プロキシが永久にブロックされた場合はどうすればいいですか?
A: Scrapelessのようなプレミアムプロバイダーは、ブロックされたIPから自動的に回転します。問題が続く場合は、サポートに連絡してください—彼らは特定のドメインをホワイトリストに追加したり、ルーティングを調整してブロックを解決することがよくあります。
Q: Scrapelessのプロキシは同時に何件のリクエストを処理できますか?
A: Scrapelessのインフラは、何千件もの同時リクエストをサポートします。同時実行数は、プロキシのキャパシティではなく、ターゲットウェブサイトの許容度に基づいて制限してください。10件の同時実行から徐々にテストして100件以上に増やしてください。
Q: Crawleeのプロキシ回転は自動ですか、それとも手動ですか?
A: Crawleeは、複数のプロキシURLが提供されると、自動的に回転を処理します。このフレームワークは、開発者の介入なしにプロキシ間でリクエストを分散させ、大規模な操作を簡素化します。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



