Python
requests、httpx、aiohttp、非同期同時実行
ドキュメント · ゲートウェイ、ユーザー名形式、セッション、エラー、制限
最初のリクエスト送信に必要なすべて、参照用:ターゲティングパラメータ、セッション規則、エラーコードと制限
クイックアンサー
CrawlRelayプロキシへの接続方法は?
任意のHTTPクライアントをhttp://USERNAME:[email protected]:7777に向けるか、SOCKS5はポート7778。CrawlRelay は開発者向けのレジデンシャルプロキシサービスで、ユーザー名からターゲティングとセッションを読み取ります:USERNAME-country-us-city-new_york-session-job1-ttl-30。レジデンシャルトラフィックは1 GBあたり$1.50、50 GB以上は$0.50/GB。暗号通貨支払い、KYC不要。
| ゲートウェイホスト | gw.crawlrelay.com |
|---|---|
| HTTP / HTTPS ポート | 7777(CONNECT経由のHTTPSサイト) |
| SOCKS5 ポート | 7778(出口でDNS解決するためにsocks5h://を使用) |
| 認証 | プランまたはサブユーザーのユーザー名とパスワード、またはIP許可リスト(最大10個のIP) |
| ユーザー名の形式 | USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes} |
| セッション長さ | 最大30分間;IPは早期に変更されることがあります |
| テストURL | https://api.ipify.orgは出口IPをプレーンテキストで返します |
| 管理API | https://crawlrelay.com/api/v1、いつでも取り消せるAPIキー対応(APIドキュメント]) |
ダッシュボードからユーザー名とパスワードをコピーして、以下のいずれかを実行してください。各実行でサイトが認識するIPアドレスが表示され、通常は実行ごとに変わります。
curl -x http://USERNAME-country-us:[email protected]:7777 https://api.ipify.orgimport requests
proxy = "http://USERNAME-country-us:[email protected]:7777"
r = requests.get("https://api.ipify.org", proxies={"http": proxy, "https": proxy}, timeout=(10, 30))
print(r.text)import { ProxyAgent, fetch } from "undici";
const dispatcher = new ProxyAgent("http://USERNAME-country-us:[email protected]:7777");
const res = await fetch("https://api.ipify.org", { dispatcher });
console.log(await res.text());ダッシュボードのユーザー名をベースに、上記の形式に沿ってパラメータをハイフンで連結してください。すべてのパラメータは任意です。値は小文字、都市名はアンダースコア使用(new_york、sao_paulo)。都市の利用可能性は異なります。
| 目標 | ユーザー名 |
|---|---|
| 任意の国、接続ごとにローテーション | USERNAME |
| ドイツ | USERNAME-country-de |
| パリ | USERNAME-country-fr-city-paris |
| テキサス | USERNAME-country-us-state-tx |
| 1つの郵便番号 | USERNAME-country-us-zip-10001 |
| 1つのISP | USERNAME-country-us-asn-7922 |
| 最大30分同じIP維持 | USERNAME-country-gb-session-abc123-ttl-30 |
パスワードに@、:、/が含まれる場合、プロキシURLに組み込む前にURLエンコードしてください。407エラーページで解説しています。
session-なしのユーザー名は新しいTCP接続ごとにプールからIPを取得し、通常違うものになります。session-<id>-ttl-<minutes>ありのユーザー名はIDごとにTTL終了かレジデンシャルプロキシ端末がオフラインになるまで同じ出口IPを維持します。
セッションガイドで各ライブラリの接続再利用について説明しています。
まずどちらが応答したかを調べてください:ゲートウェイか、その背後のサイトか。
| 表示されるのは | 送信元 | 主な原因 | どうすればいい? |
|---|---|---|---|
| 407 | ゲートウェイ | 間違ったまたはエンコードされていない認証情報 | ユーザ名またはパスワードを修正してください。盲目的な再試行は避けてください。 |
| ERR_TUNNEL_CONNECTION_FAILED | ブラウザ | CONNECT拒否(多くの場合、隠れた407) | 認証情報はサーバーURLではなく、フィールドとして渡してください。 |
| 502 / 504 | ゲートウェイまたはCDN | 出口ノードが切断されたか、ターゲットが遅いまたは応答していません。 | 新しい接続で再試行、上限を設定してください。 |
| 403 | ウェブサイト | 間違った国、ヘッダー、レート、または拒否されました。 | ブラウザで確認し、アクセス頻度を落とすか拒否を尊重してください。 |
| 429 | ウェブサイト | レート制限 | Retry-Afterを尊重し、ホストごとの同時接続数を減らしてください。 |
| SSL: WRONG_VERSION_NUMBER | あなたのクライアント | プロキシURLの前にhttps://がある | プロキシURLにはhttp://を使用してください。 |
すべての15の項目はエラーリファレンスにあります。
ダッシュボードまたはAPIキーを使ったREST APIhttps://crawlrelay.com/api/v1で管理可能。いつでも取り消せるAPIキー対応。主なタスクは以下:
requests、httpx、aiohttp、非同期同時実行
ミドルウェア、リクエストごとのセッション、自動スロットル
PythonとNode.js、コンテキストごとのプロキシ設定
フラグ+page.authenticate()
ローカルフォワーダー経由の認証プロキシ
undici、axios、got、SOCKS5
HTTP、SOCKS5、-vデバッグ
接続再利用、TTL、フローごとの1IP制御
ホストごとの制限、スループット、再試行制御
CrawlRelayはPython(requests、httpx、aiohttp)、Scrapy、Playwright、Puppeteer、Selenium、Node.js、curl用のコピペ可能なガイドを公開しています。15のプロキシエラーリファレンスと、curl, Python, Node.jsサンプル付きのREST APIリファレンスも含みます。すべての例は実際のゲートウェイホストとポートを使用し、公開前に文法チェック済みです。
不要です。ユーザ名とパスワード認証はどのマシンからでも動作するため、ノートパソコン、サーバー、CIランナーで同じスクレイパーを実行できます。希望があれば最大10IPを許可リストに追加可能です。認証情報は環境変数やシークレットマネージャーに保持し、リポジトリには絶対に保存しないでください。
ユーザー名にセッションIDが含まれているため、意図的に1つのIPを維持しているか、クライアントが1つのキープアライブ接続を再利用しています。回転は新しい接続ごとに発生します。セッション部分を除去するか、sessions guide]で示されているようにリクエストごとに新しい接続を開いてください。
ウェブスクレイピングにはHTTPポート(7777)を使ってください。すべてのライブラリやブラウザが認証付きでサポートしており、HTTPSサイトもCONNECTトンネル経由で動作します。SOCKS5(7778)はSOCKSのみ対応のツールに使い、socks5h://を使うとDNSは出口で解決されます。
プロキシ経由でhttps://api.ipify.orgにリクエストしてIPを取得し、信用できるジオロケーションデータベースで調べます。とくにモバイルIPはデータベースの見解が異なる場合があるため、対象が提供するコンテンツ(通貨、言語、地域の結果)が重要です。
プランはリクエスト数でなくGBごとに課金され、最初に遭遇する制限はターゲット側のものです。各ターゲットは個別に制御し、429や503レスポンスがあればバックオフしてください。大規模クロールを計画している場合は、先に[email protected]のサポートに連絡してください。
$0.50/GBから · KYC不要
今すぐ始める