Sem KYC — sem documento, sem selfie, sem documentos · Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC · Recarregue a partir de US$ 25
Idioma: Português
Ver preços

Guia · Python

Python Requests com um proxy estático

Monte a URL do proxy a partir dos quatro valores do seu IP, passe-a para http e https, defina timeouts e verifique o IP de saída. Testado em 19 de outubro de 2026.

Última atualização: · 6 min de leitura

Resposta rápida

Como usar Python Requests com um proxy estático?

Para usar Python Requests com um proxy estático, monte a URL do proxy a partir do host, porta, usuário e senha do seu IP. Passe essa URL nas chaves http e https de proxies=, defina um timeout e confira o IP de saída em api.ipify.org. Os IPs estáticos SteadyProxy custam a partir de US$ 2,24 por 30 dias em outubro de 2026, sem KYC e com pagamento em cripto.

Quais são os fatos principais?

Instalaçãopython -m pip install requests (SOCKS5: requests[socks])
URL do proxy HTTPhttp://USERNAME:PASSWORD@host:port, for both the http and https keys
URL do proxy SOCKS5socks5h://USUARIO:SENHA@host:porta (porta SOCKS5 padrão 7778)
Caracteres especiaisFaça o URL-encode do usuário e da senha com urllib.parse.quote
Proxies de ambientesession.trust_env = False ignora HTTP_PROXY definido em outro lugar
Timeouts(10, 30): 10 s para conectar, 30 s para ler, nos nossos exemplos
TestadoPython 3.14 e Requests 2.34, 19 de outubro de 2026, através de um proxy de teste protegido por senha

Como envio uma requisição por um proxy estático?

Cada IP estático vem com seu próprio host, porta, usuário e senha no seu painel. Coloque esses dados em variáveis de ambiente, não no código. O script abaixo monta a URL do proxy, envia uma requisição para api.ipify.org e para se o IP de saída não for o esperado. Depois ele lê o nome da rede em ipinfo.io. Com senha errada, o Requests gera um ProxyError que menciona 407 Proxy Authentication Required, como mostrou nosso teste.

python_requests.py: um proxy estático com verificação de IP de saída
"""Python Requests through one static proxy, with a check of the exit IP.

Install: python -m pip install requests
"""
import os
from urllib.parse import quote

import requests

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_PORT", "7777")
USER = quote(os.environ.get("PROXY_USER", "USERNAME"), safe="")
PASSWORD = quote(os.environ.get("PROXY_PASS", "PASSWORD"), safe="")
EXPECTED_IP = os.environ.get("EXPECTED_IP")  # the static IP listed in your dashboard

# The proxy URL starts with http:// even for https:// sites (Requests opens a CONNECT tunnel)
PROXY = "http://" + USER + ":" + PASSWORD + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}

with requests.Session() as session:
    session.trust_env = False  # ignore HTTP_PROXY / HTTPS_PROXY set elsewhere on the machine
    response = session.get("https://api.ipify.org?format=json", proxies=PROXIES, timeout=(10, 30))
    response.raise_for_status()
    exit_ip = response.json()["ip"]
    print("Exit IP:", exit_ip)
    if EXPECTED_IP and exit_ip != EXPECTED_IP:
        raise SystemExit("Exit IP differs from the static IP you expected")

    page = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
    page.raise_for_status()
    print("Network:", page.json().get("org"), "-", page.json().get("country"))

Por que a URL do proxy é http:// para sites https://?

A chave do dicionário proxies é o esquema do site de destino; o valor é o endereço do proxy. Para um site https://, o Requests pede ao proxy HTTP que abra um túnel CONNECT e depois faz TLS por ele até o site. O proxy nunca vê a página descriptografada. Por isso as duas chaves apontam para a mesma URL de proxy http://. Mantenha a verificação de certificado ativada: nunca defina verify=False só para fazer um erro de proxy sumir.

Como dou a cada conta seu próprio IP estático?

Mapeie cada conta ou tarefa para um IP e crie uma Session por mapeamento. A Session mantém cookies e reaproveita conexões e, com trust_env = False, a configuração de proxies não é substituída por variáveis de ambiente. O exemplo abaixo lê uma linha por IP, na ordem host, porta, usuário, senha, que você pode copiar dos quatro valores do seu painel.

python_per_account.py: uma Session por IP estático
"""One static IP per account or per job with Python Requests.

Each line holds the four values shown for one IP in your dashboard:
host:port:username:password
"""
import os
from urllib.parse import quote

import requests

STATIC_IPS = {
    "store-uk": os.environ.get("PROXY_STORE_UK", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
    "store-de": os.environ.get("PROXY_STORE_DE", "gw.steadyproxy.com:7777:USERNAME:PASSWORD"),
}


def session_for(name):
    host, port, user, password = STATIC_IPS[name].split(":", 3)
    proxy = "http://" + quote(user, safe="") + ":" + quote(password, safe="") + "@" + host + ":" + port
    session = requests.Session()
    session.trust_env = False
    session.proxies = {"http": proxy, "https": proxy}
    return session


for account in STATIC_IPS:
    with session_for(account) as s:
        ip = s.get("https://api.ipify.org", timeout=(10, 30)).text
        print(account, "->", ip)

Como uso SOCKS5 em vez de HTTP?

Instale requests[socks] e troque http:// por socks5h:// e a porta HTTP pela porta SOCKS5. O h faz o proxy resolver os nomes de host, então as respostas de DNS batem com o país do IP. O resto do código continua igual. Um exemplo completo e testado está no guia de proxy estático SOCKS5. As duas portas de um mesmo IP estático levam ao mesmo IP de saída.

O que significam os erros comuns?

Cada erro aponta para uma camada.

  • ProxyError com 407: usuário ou senha errados, ou esta máquina não está na sua allowlist.
  • ConnectTimeout: host ou porta errados, ou um firewall do seu lado bloqueia o tráfego de saída para a porta do proxy.
  • ReadTimeout: o destino ou o caminho está lento; tente de novo mais tarde e mantenha o read timeout.
  • SSLError: um problema de certificado no destino ou na sua máquina; não desative a verificação.
  • 403 ou 429 do destino: o site recusou ou limitou a taxa da requisição; diminua o ritmo.

Se um IP falhar em toda requisição por uma hora, fale com o suporte. Nossa regra de substituição: Se um IP não funcionar, escreva para o suporte: nós o consertamos ou o substituímos por outro IP no mesmo país quando houver estoque.

O que mais as pessoas perguntam sobre Python e proxies estáticos?

Por que definir as chaves http e https?

O Requests escolhe o proxy pelo esquema da URL de destino. Sem a chave https, as requisições para sites https:// sairiam direto, pelo seu próprio IP. Definir as duas chaves com a mesma URL de proxy envia toda requisição pelo IP estático. A verificação em api.ipify.org no script detecta uma chave faltando na hora.

Por que fazer URL-encode do usuário e da senha?

Caracteres como @, : e / têm significado dentro de uma URL. Uma senha com @ seria interpretada como o fim da parte de login. urllib.parse.quote com safe='' codifica esses caracteres, e o Requests os decodifica antes de enviar o login ao proxy. Isso funciona para URLs HTTP e socks5h://.

Por que definir trust_env como False?

O Requests lê HTTP_PROXY, HTTPS_PROXY e NO_PROXY do ambiente por padrão, e a documentação avisa que proxies de ambiente podem substituir a configuração de proxies de uma Session. Uma configuração de VPN ou corporativa poderia então rotear algumas requisições para outro lugar. trust_env = False faz o código usar só o proxy que você passa.

Posso usar o mesmo código com httpx ou aiohttp?

Sim, a ideia é a mesma: uma URL de proxy montada a partir de host, porta, usuário e senha, mais um timeout e uma verificação de IP de saída. Os nomes dos parâmetros variam conforme a biblioteca e a versão, então siga a documentação de proxy dessa biblioteca. Mantenha um client por IP estático, como com as Sessions no Requests.

Como mantenho as credenciais fora do meu repositório?

Leia-as de variáveis de ambiente ou de um gerenciador de segredos, como fazem os exemplos, e nunca faça commit de um arquivo .env com valores reais. Não imprima a URL do proxy nos logs, porque ela contém a senha. Com o método de allowlist de IP, scripts em máquinas na allowlist não precisam de senha de proxy.

Quantas requisições um IP estático aguenta em Python?

O proxy cobra por IP e por 30 dias, não por GB. Cobrado por IP e por 30 dias, não por GB; aplica-se uso justo. O limite real é o site de destino, que pode limitar a taxa de um IP. Mantenha a concorrência moderada por IP, adicione intervalos e siga os termos de cada site. Para mais volume em uma tarefa, distribua o trabalho entre vários IPs; veja quantos IPs estáticos eu preciso?.

Quais fontes este guia usa? (3)
  1. Uso avançado do Requests: proxies, SOCKS, timeouts — Requests (2026-10-19)
  2. urllib.parse: quote — Python Software Foundation (2026-10-19)
  3. API do ipify — ipify (2026-10-19)

A partir de US$ 2,24 por IP de ISP · 30 dias · sem KYC

Ver preços