无需 KYC — 无需身份证、无需自拍、无需文件。加密货币支付:BTC, USDT, USDC, ETH, SOL, LTC · 从 US$25 充值
语言: 简体中文
购买代理

指南 · Python

在 Python 中使用美国代理:requests、httpx、Scrapy 和 Playwright

适用于四种最常用 Python 爬虫工具的有效代码,支持美国州、市和邮编定位、轮换、粘性会话、重试和速率限制。

最后更新: · 由 StatesideIP · 4 分钟阅读

快速解答

如何在 Python 中使用美国代理?

StatesideIP,一家无需 KYC 的美国住宅代理和4G 移动代理提供商,通过一个网关提供 Python 美国代理:gw.statesideip.com,HTTP/HTTPS 端口为 7777,SOCKS5 端口为 7778。位置信息放在用户名中,例如 USERNAME-country-us-state-ny。住宅代理流量起价为 US$0.52/GB,截至 2026 年 10 月。无需 KYC — 无需身份证、自拍或文件。支持加密货币支付。

Python 连接详情

网关主机gw.statesideip.com
HTTP/HTTPS 端口7777
SOCKS5 端口7778
用户名格式USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}
协议HTTP、HTTPS(CONNECT)和 SOCKS5
轮换每次请求更换新 IP,或使用粘性会话保持同一 IP
粘性会话1 到 120 分钟,通过 ttl 参数按会话设置
这里使用的测试端点https://api.ipify.org?format=json
价格来自 US$0.52/GB;US$1.50 用于 1 GB
KYC 和支付无需 KYC — 无需身份证、无需自拍、无需文件。使用加密货币支付。

使用 Python 访问美国代理前需要准备什么?

你需要 Python 3、pip,以及一个StatesideIP用户名和密码。设置分五步完成。

  1. 购买小套餐

    1 GB 计划在价格页面]售价为 US$1.50,支持 BTC、USDT、USDC、ETH、LTC 或 SOL 支付。

  2. 复制你的凭证

    从已确认的加密货币余额购买套餐后,凭证会立即显示在您的仪表板中。以下代码将凭证写为 USERNAME 和 PASSWORD。

  3. 安装库

    先运行 pip install requests httpx scrapy playwright,再运行 playwright install chromium 以启动浏览器示例。

  4. 构建用户名

    只添加您需要的定位细分,例如 USERNAME-country-us-state-tx-city-houston。值为小写,空格用下划线替代。

  5. 检查出口 IP

    通过代理请求 https://api.ipify.org?format=json。它返回的 IP 是目标网站看到的美国 IP。

如何用 Python requests 使用美国代理?

在 proxies 参数中为 http 和 https 传入同一个代理 URL。即使是 HTTPS 目标,也要保持代理 URL 中的 http:// 协议:网关会用 CONNECT 打开 HTTPS 隧道。对于 SOCKS5,安装 requests[socks] 并使用 socks5h://,这样 DNS 查询也会在美国端完成。

requests:轮换纽约 IP,然后 SOCKS5
import requests

HOST = "gw.statesideip.com"
USER = "USERNAME-country-us-state-ny"  # rotating New York State IP
PASSWORD = "PASSWORD"

proxy = f"http://{USER}:{PASSWORD}@{HOST}:7777"
r = requests.get("https://api.ipify.org?format=json",
                 proxies={"http": proxy, "https": proxy}, timeout=30)
print(r.json())

# SOCKS5 (pip install "requests[socks]"); socks5h resolves DNS through the proxy
socks = f"socks5h://{USER}:{PASSWORD}@{HOST}:7778"
r = requests.get("https://api.ipify.org?format=json",
                 proxies={"http": socks, "https": socks}, timeout=30)
print(r.json())

我应该每次请求都轮换 IP 还是保持会话粘性?

独立页面抓取时每次请求轮换 IP,需要保持同一 IP 的任务则使用粘性会话。没有 session 细分的用户名每次请求都会获得新 IP。添加 session-{id} 和 ttl-{minutes} 可为 1 到 120 分钟,通过 ttl 参数按会话设置 保持同一 IP。

  • 轮换: 搜索结果检查或目录价格检查,分布在多个美国 IP 上。
  • 粘性: 自己网站上的多页流程,如购物车到结账的 QA 测试。

轮换网关通常按连接分配出口 IP。如果多个请求共用一个 IP,说明客户端复用了连接;新的 requests.get() 调用且无 Session 会打开新连接。

构建轮换和粘性代理 URL
import uuid

def proxy_url(state=None, city=None, zip_code=None, session=None, ttl=10):
    parts = ["USERNAME", "country-us"]
    if state:
        parts.append(f"state-{state}")
    if city:
        parts.append(f"city-{city}")
    if zip_code:
        parts.append(f"zip-{zip_code}")
    if session:
        parts += [f"session-{session}", f"ttl-{ttl}"]
    user = "-".join(parts)
    return f"http://{user}:[email protected]:7777"

rotating = proxy_url(state="tx", city="houston")  # new IP per request
sticky = proxy_url(zip_code="10001", session=uuid.uuid4().hex[:8], ttl=30)  # one IP, 30 min

如何用 httpx async 同时发送大量请求?

用一个 httpx.AsyncClient 作为 proxy 参数,并用 asyncio.Semaphore 限制并发请求数。每个目标站点初始并发约 5 个请求。错误率低时再提高限制。

下面示例禁用了 keep-alive,每个请求都打开新连接以获得新 IP。使用粘性会话时请移除该行。新版 httpx 支持 proxy=;旧版的 proxies= 参数在 httpx 0.28 中被移除。

httpx:20 个请求,最多 5 个并发,加州 IP
import asyncio
import httpx

PROXY = "http://USERNAME-country-us-state-ca:[email protected]:7777"
URLS = ["https://api.ipify.org?format=json"] * 20

async def fetch(client, sem, url):
    async with sem:  # caps requests in flight
        r = await client.get(url)
        r.raise_for_status()
        return r.json()

async def main():
    sem = asyncio.Semaphore(5)
    limits = httpx.Limits(max_keepalive_connections=0)  # new connection, new IP
    async with httpx.AsyncClient(proxy=PROXY, limits=limits, timeout=30) as client:
        results = await asyncio.gather(*(fetch(client, sem, u) for u in URLS),
                                       return_exceptions=True)
    for res in results:
        print(res)

asyncio.run(main())

如何处理重试、退避和速率限制?

仅重试临时失败,每次尝试后等待时间递增并加入随机抖动。对超时、连接错误及状态码 429、500、502、503 和 504 重试。遇到网站发送的 Retry-After 头时遵守其规定。绝不重试 407 错误:表示用户名或密码错误。

遵守各站点 robots.txt 和使用条款,保持请求速率接近正常浏览。StatesideIP 在其可接受使用政策中禁止访问银行、政府和支付门户,以及 SMTP 端口。

带抖动的指数退避重试请求
import random
import time
import requests

RETRY_STATUS = {429, 500, 502, 503, 504}

def get_with_retries(url, proxies, attempts=5):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=proxies, timeout=30)
            if r.status_code == 407:
                raise RuntimeError("407: check USERNAME and PASSWORD")  # do not retry
            if r.status_code not in RETRY_STATUS:
                return r
            ra = r.headers.get("Retry-After", "")
            wait = int(ra) if ra.isdigit() else 2 ** attempt
        except (requests.ConnectionError, requests.Timeout):
            wait = 2 ** attempt
        time.sleep(wait + random.uniform(0, 1))  # backoff plus jitter
    raise RuntimeError(f"gave up on {url}")

如何在 Scrapy 中使用美国代理?

在 meta["proxy"] 中为每个请求设置代理,用户名和密码包含在 URL 内。Scrapy 内置代理中间件会将其转换为 Proxy-Authorization 头。保持 ROBOTSTXT_OBEY = True,并让 AutoThrottle 在网站响应慢时减缓爬取速度。

Scrapy:设置和迈阿密 IP 蜘蛛
# settings.py
ROBOTSTXT_OBEY = True
CONCURRENT_REQUESTS_PER_DOMAIN = 4
AUTOTHROTTLE_ENABLED = True
RETRY_TIMES = 3
RETRY_HTTP_CODES = [429, 500, 502, 503, 504]

# spiders/ip_check.py
import scrapy

PROXY = "http://USERNAME-country-us-state-fl-city-miami:[email protected]:7777"

class IpCheckSpider(scrapy.Spider):
    name = "ip_check"
    start_urls = ["https://api.ipify.org?format=json"]

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={"proxy": PROXY}, dont_filter=True)

    def parse(self, response):
        yield {"ip": response.json()["ip"]}

如何用 Playwright 使用美国代理?

启动浏览器时传入包含服务器、用户名和密码的 proxy 字典。浏览器每页加载多个文件,建议使用粘性会话:一次页面浏览保持一个美国 IP。每个新任务使用新的会话 ID。

Playwright:芝加哥 IP 粘性会话,持续 15 分钟
import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(proxy={
            "server": "http://gw.statesideip.com:7777",
            "username": "USERNAME-country-us-state-il-city-chicago-session-pw1-ttl-15",
            "password": "PASSWORD",
        })
        page = await browser.new_page()
        await page.goto("https://api.ipify.org?format=json")
        print(await page.text_content("body"))
        await browser.close()

asyncio.run(main())

为什么我的 Python 代理请求失败?

大多数失败源于凭证错误、定位过窄或客户端复用连接。

  • 407 代理认证失败: 用户名或密码错误,或细分拼写错误。与 USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes} 对比检查。
  • ZIP 或 ASN 目标超时: 过滤条件过窄导致可用 IP 少。扩大到城市或州,或增加超时。
  • 每次请求 IP 相同: 客户端保持连接未关闭。禁用 keep-alive,或去掉 session 细分。
  • SSL 错误: 代理 URL 应用 http://,而非 https://。

入门指南涵盖 curl 和 Node。

Python 美国代理:常见问题解答

我应该用哪个 Python 库配合美国代理?

简单脚本用 requests,同时发起大量请求用 httpx,完整爬取用 Scrapy,需要执行 JavaScript 的页面用 Playwright。四者均可通过 StatesideIP 网关在 gw.statesideip.com 端口 7777 使用。用户名格式相同,可设置美国州、市或邮编。

如何在 Python 中每次请求都获取新的美国 IP?

用户名中省略 session 段,例如 USERNAME-country-us-state-ga。StatesideIP 会在每次请求时分配新的 IP。确保客户端每次都建立新连接:调用 requests.get() 时不使用 Session,或在 httpx 中禁用 keep-alive。否则多次请求可能共用同一 IP。

如何在整个任务中保持相同的美国 IP?

在用户名中添加 session-{id} 和 ttl-{minutes},例如 USERNAME-country-us-zip-10001-session-job42-ttl-30。带有该会话 ID 的所有请求会在你设置的 ttl 时间内保持同一 IP。StatesideIP 的粘性会话最长持续 1 到 120 分钟,通过 ttl 参数按会话设置。住宅代理连接可能提前断开,请在代码中做好重试。

我可以在 Python 中使用 SOCKS5 代理吗?

可以。安装 requests[socks],或 httpx 用 httpx[socks],并使用端口 7778 的 socks5h:// URL。h 让 DNS 查询通过代理,访问美国网站时表现如同美国用户。HTTP 和 HTTPS 在端口 7777 可用,无需额外包。

通过 StatesideIP 我能同时发送多少请求?

初始对每个目标站点保持约 5 个并发请求,错误率低时逐步提高。大多数限制来自目标站点,注意状态码 429 并适当降速。住宅代理基于家庭连接,响应速度比数据中心慢。针对邮编或 ASN 目标时并发应更低。

我需要 KYC 才能获取 Python 脚本的凭证吗?

不需要。凭证随账户提供,无需身份验证:账号登录;电子邮箱可选。支持加密货币支付(BTC、USDT、USDC、ETH、LTC 或 SOL)。然后将用户名和密码粘贴到上面代码中的 USERNAME 和 PASSWORD 占位符。无免费试用——使用 1 GB 套餐测试,从最低充值额支付;剩余部分保留在余额中(永不过期,不可退款)。

获取适用于 Python 代码的美国代理凭证

来自 US$0.52/GB 的住宅代理流量,支持州、市、邮编和 ASN 定向。无需 KYC —— 无身份证、无自拍、无文件。支持加密货币支付。

来自 US$0.52/GB · 无需 KYC

购买代理