1. O que é um servidor proxy?
Um pouco sobre redes
Um servidor proxy é, basicamente, o seu agente secreto pessoal no ciberespaço. Imagine que você quer ficar anônimo na internet e precisa de um intermediário para enviar suas requisições ao servidor e depois devolver as respostas para você, escondendo o seu verdadeiro endereço IP. É exatamente isso que um proxy faz — transmite suas requisições de forma anônima e devolve as respostas.
Tipos de servidores proxy
Antes de irmos para o código, vale a pena dar uma olhada rápida nos tipos de proxies disponíveis. Cada tipo tem suas próprias aplicações e características:
- HTTP Proxy: Usado para lidar com requisições HTTP. Muito bom para navegação na web comum.
- HTTPS Proxy: Processa requisições HTTPS criptografadas. Essencial para conexões seguras.
- SOCKS Proxy: Mais versátil e pode trabalhar com qualquer tipo de tráfego. Ótima escolha quando você precisa de flexibilidade máxima.
2. Configurando um servidor proxy no Python
Configurar um proxy no Python é mais fácil do que convencer um gato a não sentar no teclado. Vamos usar a biblioteca requests, que permite configurar proxies para conexões HTTP e HTTPS de maneira simples.
Instalando a biblioteca requests
Se, por algum motivo, você ainda não instalou a biblioteca requests, é o momento de fazer isso. Veja como proceder:
import requests
# Definindo proxies para requisições HTTP e HTTPS
proxies = {
'http': 'http://seu.proxy:porta',
'https': 'https://seu.proxy:porta'
}
# Fazendo uma requisição usando proxy
response = requests.get('http://example.com', proxies=proxies)
# Mostrando o resultado
print(response.text)
pip install requests
Exemplo de uso de um servidor proxy
Agora vamos ver como fazer requisições usando um servidor proxy. Utilizaremos a biblioteca requests para isso.
import requests
# Definindo proxies para requisições HTTP e HTTPS
proxies = {
'http': 'http://seu.proxy:porta',
'https': 'https://seu.proxy:porta'
}
# Fazendo uma requisição usando proxy
response = requests.get('http://example.com', proxies=proxies)
# Mostrando o resultado
print(response.text)
Repare no formato da string do proxy. Aqui, sua tarefa é substituir seu.proxy:porta pelo URL e porta do proxy que você está usando. Existem proxies gratuitos e pagos disponíveis na internet. Se os proxies gratuitos fossem competidores do "Miss Universo", eles estariam liderando disparados.
3. Vantagens do uso de servidores proxy
Contornando limites
Servidores proxy nos permitem contornar limites de frequência de requisições impostos por alguns sites. Com a rotação de proxies, é possível usar diferentes endereços IP e evitar bloqueios. É como mudar o disco no toca-discos — seu script deixa de ser repetitivo.
Preservando o anonimato
Com proxies, você pode manter o anonimato de suas ações. Isso é especialmente importante quando você quer evitar limitações baseadas no IP. Basicamente, é como colocar uma fantasia diante do servidor remoto.
4. Rotação de servidores proxy
Agora vamos imaginar a rotação de proxies como girar uma roleta — nunca se sabe onde ela vai parar. No nosso caso, a rotação é usada para alternar entre diferentes endereços IP durante o scraping e evitar suspeitas por parte dos servidores.
import random
# Lista de proxies disponíveis
proxy_list = [
'http://proxy1:porta',
'http://proxy2:porta',
'http://proxy3:porta'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Fazendo uma requisição usando um proxy aleatório
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Rotação avançada
Você pode melhorar seu script adicionando uma lógica que verifica a disponibilidade de proxies e os substitui em caso de indisponibilidade. Assim, você usará um conjunto confiável de endereços.
GO TO FULL VERSION