Ao trabalhar com Python requests
biblioteca, às vezes você pode precisar usar um servidor proxy. Os proxies são úteis por vários motivos, como contornar restrições geográficas, anonimato ou acessar recursos por meio de um firewall corporativo. Este guia ajudará você a entender como configurar e usar proxies corretamente com o requests
biblioteca.
Problemas comuns
Antes de mergulhar no código, vamos abordar alguns problemas comuns que você pode encontrar:
- Formato de URL de proxy incorreto: Certifique-se de que o URL do proxy esteja formatado corretamente.
- Erros de resolução de DNS: Eles ocorrem quando o proxy não consegue resolver o nome do host.
- Problemas de autenticação: Verifique se suas credenciais de proxy estão corretas.
- Incompatibilidade de protocolo proxy: Use o proxy correto para o protocolo (HTTP ou HTTPS).
Formato correto do URL do proxy
Uma URL proxy com autenticação deve seguir este formato:
http://username:password@proxy_ip:proxy_port
Configurando Proxies em Solicitações
Para usar proxies com o requests
biblioteca, você precisa especificá-los em um dicionário passado para o proxies
parâmetro do método de solicitação. Aqui está um exemplo passo a passo:
- Importe a biblioteca de solicitações.
- Defina o URL do proxy.
- Crie um dicionário para os proxies.
- Faça uma solicitação usando os proxies.
Aqui está o código completo:
import requests
# Define your proxy URL
proxies = {
'http': 'http://user123456:[email protected]:8085',
'https': 'http://user123456:[email protected]:8085'
}
# Try to make a request using the proxies
try:
response = requests.get('https://api.ipify.org', proxies=proxies, timeout=10, verify=False)
my_ip = response.text
print(f"My IP address: {my_ip}")
except requests.exceptions.ProxyError as e:
print(f"Proxy error: {e}")
except requests.exceptions.RequestException as e:
print(f"Request error: {e}")
Explicação do Código
- Importando a Biblioteca: Comece importando o
requests
biblioteca. - Dicionário proxy: Crie um dicionário chamado
proxies
onde amboshttp
ehttps
as chaves são definidas para o seu URL de proxy. - Fazendo a solicitação: Use o
requests.get
método para enviar uma solicitação GET para um URL de teste (https://api.ipify.org
nesse caso). Este URL retorna seu endereço IP público. - Manipulação de erros: Implemente o tratamento de erros para capturar e imprimir quaisquer erros relacionados ao proxy ou à solicitação.
Considerações importantes
- Funcionalidade de proxy: Certifique-se de que seu servidor proxy esteja operacional e acessível. Teste-o usando um navegador ou outra ferramenta.
- Credenciais: Verifique novamente suas credenciais de autenticação de proxy (nome de usuário e senha).
- Configurações de DNS: Se os problemas de DNS persistirem, certifique-se de que as configurações de DNS da sua máquina estejam configuradas corretamente ou tente outro servidor proxy.
Dicas de soluções de problemas
- O proxy não funciona no código, mas funciona no navegador: Isso geralmente indica problemas com a forma como o proxy é definido no código. Verifique novamente o formato e os protocolos.
- Tempos limite: Aumente o valor do tempo limite no
requests.get
método se você tiver tempos limite frequentes. - Verificação SSL: Se você encontrar problemas com certificados SSL, defina
verify=False
para ignorar verificações de SSL. Observe que isso não é recomendado para ambientes de produção devido a riscos de segurança.
Seguindo este guia, você será capaz de usar proxies de maneira eficaz com Python requests
biblioteca. Os proxies são ferramentas poderosas e compreender como implementá-los corretamente aumentará sua capacidade de gerenciar solicitações de rede em vários cenários.