# プロキシ経由の読み取りタイムアウト：原因と適切なタイムアウト

> レジデンシャルプロキシ経由の読み取りタイムアウト：原因、スクレイパー向けの適切な接続・読み取りタイムアウト、および積み重ねずに再試行する方法。

- URL: https://crawlrelay.com/ja/docs/errors/read-timeout/
- 最終更新: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

クライアントのタイムアウトエラー：各ツールでの正確なメッセージ、考えられる原因の順序、効果的な修正方法。

**クイックアンサー — プロキシでのRead timed out (ReadTimeout)とは何を意味していますか？**

**読み取りタイムアウト**はクライアントが応答の次のバイトを待つ時間が設定された読み取りタイムアウトを超えたことを意味します。CrawlRelayのレジデンシャルプロキシ経由の場合、遅延は遅い対象か遅いホーム出口によることが多いです。接続タイムアウトと読み取りタイムアウトを別々に設定してください。HTMLページなら接続約10秒、読み取り30～60秒程度が目安で、タイムアウトしたリクエストは一度だけ新しい出口で再試行してください。

## Read timed out (ReadTimeout)を一目で理解する

| 属性 | 値 |
| --- | --- |
| エラー | Read timed out (ReadTimeout) |
| タイプ | クライアントのタイムアウトエラー |
| 送信元 | HTTPクライアントが読み取りタイムアウト内にデータを受け取れなかった場合 |
| 定義されている場所 | Client setting, no protocol status |
| 再試行しますか？ | はい、新しい出口で1〜2回可能 |
| まず確認すること | 読み取りタイムアウトと対象の通常応答時間を比較してください |

## Read timed out (ReadTimeout)とは何ですか？

クライアントは通常2つのタイマーを持っています。接続タイムアウトはプロキシへの接続が確立されるまでの待機時間を制限します。読み取りタイムアウトはリクエスト送信後のバイト間での待機時間を制限します。読み取りタイムアウトは接続成功後に応答が遅すぎることを示します。

明示的なタイムアウトを設定しないと、クライアントによっては永遠に待つ場合があります。Python requestsはデフォルトでタイムアウトがなく、リクエストが一つ止まるとワーカーが凍結します。

## a read timeoutはPython、curl、Node.js、ブラウザではどのように表示されますか？

同じ失敗でもツールごとに異なる表示になります。ログ検索用のメッセージは以下の通りです：

- **Python requests:** `ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)`
- **httpx:** `httpx.ReadTimeout`
- **Node.js:** `ETIMEDOUT`、`ESOCKETTIMEDOUT`、または独自タイマーの`AbortError`
- **Playwright:** `TimeoutError: page.goto: Timeout 30000ms exceeded`

## a read timeoutの原因は何ですか？

最も可能性が高いのは次の通りです：

- **遅い対象ページ**（検索結果や重い動的ページなど）。
- **遅い出口**：ホームのアップロード速度、Wi-Fi、混雑したモバイルセル。
- **大きなダウンロードを一括読み込みしている**。
- **ページの種類に対してタイムアウト設定が短すぎる**。
- **ネットワークアイドルを待つブラウザページで、トラッカーがずっと読み込み続ける場合。**

## a read timeoutを段階的に診断するには？

1. プロキシなしでリクエストの時間を測り基準を得る。
2. 最初のバイト取得時間と合計時間を別々にログに取る。
3. 遅いURLの応答サイズをチェックする。
4. ブラウザで利用中の`waitUntil`条件を調べる。

*curlで失敗したURLをテストする（HTTPポート、詳細表示）*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## a read timeoutをどう修正しますか？

- **両方のタイムアウトを設定する**：接続は約10秒、読み取りはHTMLで30～60秒、大きなファイルはもっと長く。
- **大きい応答はストリームし、チャンクでディスクに書き込む。**
- **Playwrightではネットワークアイドルの代わりに`domcontentloaded`を使う（HTMLのみ必要な場合）。**
- **ブラウザで不要な重いリソース（動画等）をブロックする。**
- **新しい出口で1回だけ再試行し、それでもダメならURLを遅いキューに移す。**

*Python httpx：明示的な接続、読み取り、書き込み、プールのタイムアウト設定*

```python
import httpx

proxy = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...
```

## a read timeoutの後に再試行すべきですか？

読み取りタイムアウトは新しい出口で1〜2回再試行してください。同じURLが繰り返しタイムアウトするなら、すべてのタイムアウトを延ばすよりも別の遅いキューで長いタイムアウトを与えたほうが良いです。重複副作用に注意し、GETなど安全に繰り返し可能なリクエストだけ再試行してください。

## Read timed out (ReadTimeout)はCrawlRelayにどう関係しますか？

セッションIDなしのCrawlRelay新規接続は毎回異なるレジデンシャル出口を使うので、再試行は別のホーム接続もテストしています。遅い対象にはスティッキーセッションを短く保ってください。出口が遅いとセッション内の全リクエストが遅くなります。

ゲートウェイ：`gw.crawlrelay.com`、ポート7777（HTTP、HTTPSはCONNECT経由）、ポート7778（SOCKS5）。ユーザー名形式：`USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`。関連情報：[504 Gateway Timeout](https://crawlrelay.com/ja/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/ja/docs/errors/connection-reset/) · [Concurrency guide](https://crawlrelay.com/ja/docs/concurrency/)。

## Read timed out (ReadTimeout)：開発者がよく尋ねる質問

### プロキシを使ったスクレイピングのタイムアウト設定は？

HTMLページでの基準は接続約10秒、読み取り30秒から始めて自身の測定に応じて調整してください。JSON APIは通常速いですが、大きなファイルや遅い検索ページはもっと必要です。タイムアウトは明示的に設定してください。Python requestsはデフォルトではタイムアウトがありません。

### タイムアウトは通信量に影響しますか？

タイムアウトまでに転送されたバイトのみ通信量としてカウントされます。最初のバイト取得でタイムアウトしたリクエストはほとんどデータを転送しません。途中でタイムアウトした大きなダウンロードはデータ転送しています。大きなファイルはストリームして可能なら途中から再開してください。

### なぜタイムアウトは連続して発生しますか？

負荷がかかるとターゲットが遅くなることが多く、時にはご自身の負荷が原因の場合もあります。複数の出口から同時にバーストが発生するとターゲットが原因であり、単一のタイムアウトは一つの遅い出口を示します。バーストが始まるときはホストの同時実行量を下げてください。

## 他のプロキシエラーのリファレンス

- [401 Unauthorized vs 407](https://crawlrelay.com/ja/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/ja/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/ja/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/ja/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/ja/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/ja/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/ja/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/ja/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/ja/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/ja/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/ja/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/ja/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/ja/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/ja/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/ja/docs/errors/ssl-wrong-version-number/)

**失敗ケースを網羅したドキュメント付きレジデンシャルプロキシ** $0.50/GB発のCrawlRelayレジデンシャルプロキシ、期限切れがないトラフィック。 [料金を見る](https://crawlrelay.com/ja/pricing/) · [クイックスタート](https://crawlrelay.com/ja/docs/)

---

CrawlRelay: CrawlRelayは開発者第一のレジデンシャルプロキシおよび4G/5Gモバイルプロキシの回転型サービスです：有効期限なしの使った分だけ支払うトラフィックを$0.50/GBから暗号通貨で購入、IDアップロード不要。KYC不要 — IDもセルフィーも書類も不要。暗号通貨で支払い可能。
