Como usar um proxy com o módulo Requests em Python

Guias, Como fazer, Proxies, Mar-06-20245 minutos de leitura

Cada computador recebe um endereço IP (Internet Protocol) único que identifica o computador e a sua localização geográfica quando está ligado à Internet. O computador envia um pedido sempre que necessita de qualquer informação da Internet. O pedido é enviado para um computador de destino que verifica o tipo de informação que está a ser pedida. O computador de destino

Cada computador recebe um endereço IP (Internet Protocol) único que identifica o computador e a sua localização geográfica quando está ligado à Internet. O computador envia um pedido sempre que necessita de qualquer informação da Internet. O pedido é enviado para um computador de destino que verifica o tipo de informação que está a ser pedida. O computador de destino envia as informações de volta se tiver autorização para as fornecer ao nosso endereço IP. Por vezes, o computador pretende obter as informações da Internet sem ser identificado. Essa informação é normalmente bloqueada, mas podemos obtê-la utilizando um proxy que actua como intermediário entre o cliente e a máquina do servidor.

Cada servidor proxy tem o seu endereço IP, pelo que, quando um utilizador solicita através de um proxy o acesso a um sítio Web, o sítio Web envia os dados para o IP do servidor proxy que os reencaminha para o utilizador.

  • Os proxies ocultam a identidade dos web scrapers e fazem com que o seu tráfego se pareça com o tráfego de um utilizador normal.
  • Os proxies proporcionam segurança adicional aos sítios Web e equilibram o tráfego da Internet.
  • Os proxies protegem os dados dos utilizadores da Web ou ajudam a aceder a sítios Web bloqueados pelo mecanismo de censura de um país.

Usando um proxy com o módulo Requests em Python

Para utilizar proxies com os pedidos Python, é necessário seguir os passos abaixo.

Pedidos de importação

Importe o pacote requests que é uma biblioteca HTTP simples. Pode enviar facilmente pedidos através deste pacote sem adicionar manualmente cadeias de consulta aos seus URLs. Pode importar pedidos utilizando o comando abaixo.

pedidos de importação

Criar um dicionário

É necessário criar um dicionário de proxies que defina as ligações HTTP e HTTPS. Pode dar à variável do dicionário qualquer nome como "proxies" que mapeie um protocolo para o URL do proxy. Além disso, tem de definir a variável URL para o sítio Web a partir do qual pretende efetuar a recolha.

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

Aqui o dicionário define o URL do proxy para dois protocolos distintos, ou seja, HTTP e HTTPS.

Criar uma variável de resposta

É necessário criar uma variável de resposta que utilize qualquer um dos métodos de pedido. Este método recebe dois argumentos:

  • O URL que criou
  • O dicionário que definiu
response = requests.get(url,proxies = proxies)
print(response.json())

O resultado é o seguinte:

Também pode utilizar o módulo requests em Python para rodar os endereços IP, como se mostra abaixo.

É necessário importar o módulo requests utilizando o comando abaixo.

pedidos de importação

Criar a função sending_request

Tem de criar uma função sending_request e preferir utilizar o proxy http, uma vez que a maioria dos proxies gratuitos não utiliza o protocolo https. Utilizámos o bloco try-except porque a maioria dos proxies gratuitos não funciona.

def sending_request(session, proxy):
    try:
        response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
        print(response.json())
    except:
        pass

Ler proxies_txt

É necessário ler o ficheiro list_proxies.txt que contém a lista de proxies gratuitos e guardá-lo na variável chamada proxies.

if __name__ == "__main__":
   com open('lista_proxies.txt', 'r') as file:
        proxies = file.readlines()

Criar sessão

Tem de criar uma sessão a partir do módulo de pedidos e seguir os passos abaixo indicados.

  • Percorrer o proxy
  • Passar o proxy e a sessão para a função sending_request
com requests.Session() as session:
   for proxy in proxies:
        sending_request(session, proxy)

Obterá a lista de proxies como mostrado abaixo.

Estes são alguns proxies, e a lista continua com mais proxies, mas todos eles não funcionam.

Necessidade de mandatários

Todas as empresas precisam de conhecer as cinco razões empresariais vitais para a utilização de proxies mencionadas abaixo.

Execução de tarefas sensíveis de forma anónima

Os proxies são bem conhecidos pela sua capacidade de tornar anónimo o tráfego da Web. Mas a maioria das pessoas não compreende a sua importância no sector empresarial. Os servidores proxy permitem que os agentes de segurança e os repórteres se protejam a si próprios, às empresas, às fontes, aos clientes e aos parceiros.

Também é possível utilizar proxies para proteger o desenvolvimento e a investigação em curso e outras actividades da empresa. Suponha que a sua empresa utiliza um proxy e um potencial espião para seguir o tráfego da Web e determinar o que a sua empresa está a desenvolver. Nesse caso, não conseguirá localizar facilmente os seus empregados.

Melhorar a segurança empresarial e institucional

Sabe que as violações de dados são dispendiosas, tanto em termos de imagem pública como de perdas monetárias. Por isso, as empresas estão preocupadas com os piratas informáticos. Mas os proxies podem ajudá-lo, pois reduzem a possibilidade de violação de dados. Acrescentam uma camada adicional de segurança entre os seus servidores e o tráfego exterior. Os servidores proxy também actuam como um amortecedor, uma vez que enfrentam a Internet e retransmitem pedidos de computadores fora da rede.

Se os piratas informáticos tiverem acesso aos seus servidores proxy, continuarão a ter dificuldade em chegar ao servidor que executa o software Web onde os dados estão armazenados.

Controlo da utilização da Internet pelos empregados

Sabe que as violações de dados são dispendiosas, tanto em termos de imagem pública como de perdas monetárias. Por isso, as empresas estão preocupadas com os piratas informáticos. Mas os proxies podem ajudá-lo, pois reduzem a possibilidade de violação de dados. Acrescentam uma camada adicional de segurança entre os seus servidores e o tráfego exterior. Os servidores proxy também actuam como um amortecedor, uma vez que enfrentam a Internet e retransmitem pedidos de computadores fora da rede.

Se os piratas informáticos tiverem acesso aos seus servidores proxy, continuarão a ter dificuldade em chegar ao servidor que executa o software Web onde os dados estão armazenados.

Poupar largura de banda e obter velocidades mais rápidas

Algumas pessoas assumem que os servidores proxy diminuem a velocidade da Internet devido à grande quantidade de trabalho que realizam em segundo plano. Mas isso nem sempre é verdade. Os servidores proxy podem ser utilizados para poupar largura de banda e aumentar a velocidade:

  • Armazenamento em cache de páginas Web e ficheiros acedidos por vários utilizadores
  • Compressão do tráfego
  • Retirar anúncios dos sítios Web

Que proxies utilizar?

Poderá pensar-se que existe um único tipo de procuração que oferece todas as vantagens às empresas, tais como:

  • Prevenir as violações de dados
  • Fixação de preços competitivos
  • Recolha de dados valiosos nas redes sociais
  • Criar uma estratégia de SEO eficaz

Na realidade, existem muitos tipos de proxies disponíveis, e o que utilizar depende dos seus requisitos ou caso de utilização.

De seguida, apresentam-se os tipos mais comuns de proxies.

Proxies de centros de dados

Os proxies de centros de dados são os proxies mais comuns utilizados pelas empresas em todo o mundo. Os centros de dados produzem e gerem estes proxies. Pode utilizar estes proxies se tiver de melhorar a segurança do seu sistema, uma vez que são baratos e fáceis de adquirir. No entanto, alguns sítios Web proíbem a sua utilização por os associarem a actividades do tipo bot.

Procurações residenciais

Os proxies residenciais estão associados a residências físicas e utilizam os endereços IP de pessoas reais fornecidos pelos fornecedores de serviços Internet (ISP). Quando os utiliza para se ligar a um sítio Web, parece um utilizador comum. Assim, é menos provável que seja detectado e banido. É possível recolher uma grande quantidade de dados da Web utilizando proxies residenciais e obter um maior anonimato e segurança.

Conclusão

Até agora, discutimos que um proxy actua como um retransmissor entre o cliente e a máquina do servidor. Sempre que o utilizador solicita informações, o seu computador envia esse pedido ao proxy, que por sua vez envia as informações para o computador de destino utilizando um endereço IP diferente. Assim, o seu endereço IP permanece confidencial. Além disso, é possível utilizar proxies com o módulo requests em Python e realizar várias acções consoante as necessidades. Se precisar de um IP estático com a velocidade dos proxies de datacenter e o elevado anonimato dos proxies residenciais, então os proxies estáticos são o caminho a seguir, uma vez que o endereço IP permanece inalterado a cada novo pedido. Pelo contrário, os proxies rotativos oferecem vantagens em testes e scraping.