Em poucas palavras, os proxies são servidores que servem de camada exterior de ligação aos serviços de rede. Servem de intermediários entre um computador e o sítio do qual um utilizador pretende extrair informações. O pedido do utilizador, em vez de ser enviado diretamente para o sítio em causa, é primeiro dirigido para o proxy, que o envia depois para o servidor final. Assim, o endereço IP do servidor proxy é o que o sítio guarda em vez do endereço do utilizador.
Então, porquê utilizar um proxy?
Por exemplo, se houver necessidade de recolher informações de um sítio sem receio de restrições ou bloqueios. Um proxy ajuda a mascarar o endereço IP do utilizador real, alterando a sua verdadeira identidade digital.
Um proxy de um país específico onde não há restrições pode ser usado. Isso ocorre porque, em certos países, o acesso a alguns programas e sites é limitado ou bloqueado.
Se um grande número de solicitações for enviado para um determinado site, é provável que o sistema seja carregado. Consequentemente, há um grande risco de ser bloqueado. O uso de vários proxies ao mesmo tempo permite que os utilizadores distribuam uniformemente os pedidos para o site específico, evitando assim o bloqueio.
Requests é a biblioteca para enviar pedidos HTTP usando Python. Torna simples efetuar pedidos GET e POST. Usar Python Requests sem proxy pode enviar pedidos HTTP, mas não fornece anonimato ou contorna restrições.
Para instalar os pedidos, basta introduzir o comando abaixo no terminal:
pip install requests
Para verificar se a biblioteca necessária está corretamente configurada, é necessário abrir o ambiente de desenvolvimento Python e executar o comando:
import requests
print(requests.__version__)
Se tudo tiver sido feito corretamente, o script devolverá o número da versão.
Depois de instalarmos a biblioteca requests, podemos começar a executar pedidos HTTP. No entanto, para incorporar um proxy, algumas configurações em Python devem ser feitas.
Vamos examinar os passos a seguir para configurar corretamente um proxy para pedidos em Python. Iremos considerar as configurações de Python Requests com proxies SOCKS separadamente.
Usar Python para configurar um proxy é muito fácil para os utilizadores que usam a biblioteca requests. Requer que o endereço do servidor proxy seja passado num dicionário e depois usado ao fazer pedidos HTTP.
proxies = {
"http": "http://your-proxy-ip:port",
"https": "http://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Ao usar Python Requests, a autenticação proxy é fácil de configurar. Vamos dar uma olhada mais de perto nos detalhes.
proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Os dois novos campos que têm de ser preenchidos são:
Para os utilizadores que necessitam de um nível mais elevado de anonimato, ou se estiver a trabalhar com sites muito restritos, os proxies HTTP normais poderão não funcionar. Neste caso, os proxies SOCKS podem ser melhores.
Para ativar o suporte de proxy SOCKS, é necessário instalar uma biblioteca adicional utilizando o comando indicado abaixo:
pip install requests[socks]
Uma vez instalado, os Python Requests permitem-lhe configurar um proxy SOCKS que pode ser usado como mostrado no exemplo abaixo.
import requests
proxies = {
"http": "socks5h://your-proxy-ip:port",
"https": "socks5h://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Se o servidor proxy necessitar de autenticação, inclua-a como indicado abaixo.
proxies = {
"http": "socks5h://username:password@your-proxy-ip:port",
"https": "socks5h://username:password@your-proxy-ip:port",
}
Ao fazer muitas solicitações através de um único proxy, em vez de adicioná-lo a cada solicitação, torna-se muito mais eficiente usar sessões de Python Requests com proxy.
Este método de usar proxies ajuda a manter configurações em todas as sessões. Também simplifica o código, melhora o desempenho e, mais importante, torna a implementação muito mais fácil.
É muito fácil criar uma sessão, basta digitar requests.Session().
Considere o seguinte exemplo:
import requests
# Criar uma sessão
session = requests.Session()
session.proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
# Pedido através da sessão
response = session.get("http://example.com")
Todas as solicitações Python dentro desta sessão usarão o proxy definido por padrão sem quaisquer configurações adicionais.
Quando você está ativamente envolvido com um site, seja para fins de raspagem ou automação, usar o mesmo proxy repetidamente pode fazer com que sua conta seja bloqueada. Isso é gerenciável rotacionando proxies, desde que você tenha alguns servidores proxy diferentes.
O exemplo a seguir mostra a implementação de um loop que rotaciona proxies para cada interação com a página web:
import requests
import random
proxies_list = [
"http://username:password@your-proxy-ip[1]:port",
"http://username:password@your-proxy-ip[2]:port",
"http://username:password@your-proxy-ip[3]:port",
]
session = requests.Session()
for _ in range(5):
proxy = random.choice(proxies_list) # Escolher aleatoriamente um proxy
session.proxies = {"http": proxy, "https": proxy}
response = session.get("http://example.com")
print(f"Used proxy: {proxy}")
print(response.status_code)
Para resumir, aqui estão algumas sugestões que podem ajudá-lo a gerenciar melhor os proxies:
Neste artigo, abordamos o que são servidores proxy, como usar corretamente proxy em Python Requests e gerenciar proxies através de sessões para simplificar o código. O exemplo também mostra o uso de proxies SOCKS e regulares, como a autenticação é manipulada e o gerenciamento de proxy.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Comentários: 0