# Python Requests com um proxy estático

> Python Requests com um proxy estático: código testado para HTTP e SOCKS5, verificação de IP de saída e um IP por conta. IPs SteadyProxy a partir de US$ 2,24, sem KYC, cripto.

- URL: https://steadyproxy.com/pt/guides/python-static-proxy/
- Última atualização: 2026-10-19
- Publisher: SteadyProxy (https://steadyproxy.com)

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.

**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?

| Atributo | Valor |
| --- | --- |
| Instalação | python -m pip install requests (SOCKS5: requests[socks]) |
| URL do proxy HTTP | http://USERNAME:PASSWORD@host:port, for both the http and https keys |
| URL do proxy SOCKS5 | socks5h://USUARIO:SENHA@host:porta (porta SOCKS5 padrão 7778) |
| Caracteres especiais | Faça o URL-encode do usuário e da senha com urllib.parse.quote |
| Proxies de ambiente | session.trust_env = False ignora HTTP_PROXY definido em outro lugar |
| Timeouts | (10, 30): 10 s para conectar, 30 s para ler, nos nossos exemplos |
| Testado | Python 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
"""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*

```python
"""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](https://steadyproxy.com/pt/guides/socks5-static-proxy/). 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?](https://steadyproxy.com/pt/guides/how-many-static-ips/).

## Quais fontes este guia usa?

1. [Uso avançado do Requests: proxies, SOCKS, timeouts](https://requests.readthedocs.io/en/latest/user/advanced/) — Requests (2026-10-19)
2. [urllib.parse: quote](https://docs.python.org/3/library/urllib.parse.html) — Python Software Foundation (2026-10-19)
3. [API do ipify](https://www.ipify.org/) — ipify (2026-10-19)

---

SteadyProxy: A SteadyProxy é um provedor de proxies estáticos: IPs ISP (residencial estático) e datacenter dedicados, alugados por IP por 30 dias, pagos com cripto e sem envio de documento.
