Como configurar o site Proxies no Selenium para Web Scraping

Como fazer, Pitão, Proxies, 27/11/20245 minutos de leitura

Ao trabalhar com o Selenium para a Web scraping ou automação, a integração do proxies é imprescindível. O Proxies permite que você contorne proibições, limites de taxa e restrições geográficas, tornando suas tarefas perfeitas e eficientes. Mas configurar o proxies no Selenium pode ser um desafio, especialmente se você estiver lidando com autenticação ou precisar monitorar solicitações HTTP. É aí que entra o Selenium Wire.

Selênio-Fio

O Selenium Wire é uma versão estendida do Selenium que adiciona recursos avançados extras, permitindo que você autentique facilmente o site proxies, intercepte solicitações e respostas HTTP e depure o tráfego de rede.

Neste guia, mostraremos como configurar o site proxies no Selenium usando fio de selênio e o gerenciador de drivers web. Normalmente, é necessário fazer o download dos arquivos binários dos webdrivers dos navegadores e manter atualizações regulares. O gerenciador de drivers web simplifica esse processo, cuidando dessas tarefas para você.

Ao final deste blog, você terá uma configuração do Selenium totalmente definida e adaptada para ProxyScrape proxies , pronta para enfrentar todos os desafios que surgirem. Vamos mergulhar de cabeça!

TL;DR

Para acessar o script completo sem passar por todo o tutorial, clique neste link para copiar o código completo.

Pré-requisitos 

Antes de nos aprofundarmos na configuração do proxies no Selenium, verifique se você tem as seguintes ferramentas e bibliotecas instaladas e prontas:

  • Python instalado
    • Certifique-se de ter o Python 3.7 ou superior instalado em seu sistema.
    • Você pode fazer o download da versão mais recente no site oficial do Python.
  • Pacotes Python necessários (instalação do Pip)
    • fio de selênio
    • gerenciador de drivers web

Execute o seguinte comando para instalar todas as dependências:

pip install selenium-wire webdriver-manager

Observação: Você pode encontrar o erro "ModuleNotFoundError: Nenhum módulo chamado blinker._saferef". Isso pode ser resolvido fazendo o downgrade da biblioteca do blinker para a versão 1.7.0

  • Comece primeiro Desinstalação a versão atual do pisca-pisca
pip uninstall blinker
  • Em seguida, instale a versão específica mencionada acima:
pip install blinker==1.7.0

Com os pré-requisitos estabelecidos, vamos dividir a configuração do script em três etapas simples:

Configuração do site Proxies no Selenium: O Script

Agora que já abordamos os pré-requisitos, vamos passar para o script propriamente dito. Este guia passo a passo o ajudará a integrar ProxyScrape residencial proxies com o Selenium usando fio de selênio e gerenciador de drivers web.

1. Importação das bibliotecas necessárias

Começamos importando as bibliotecas necessárias:

import re
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

2. Proxy Configuração

Defina seus detalhes em ProxyScrape proxy :

proxy_address = "rp.proxyscrape.com:6060"
proxy_username = "seu_nome_de_usuário_proxy"
proxy_password = "your_proxy_password" (sua senha_proxy)
  • Substitua os espaços reservados (proxy_username, proxy_password) com suas credenciais reais de ProxyScrape .
  • rp.proxyscrape.com:6060 é o ponto de extremidade ProxyScrape residencial proxy .

3. Opções de fio de selênio

Configure o site proxy no Selenium Wire:

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4. Configuração das opções do Chrome

Otimize as configurações do Chrome para obter um melhor desempenho:

chrome_options = Opções()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

5. Inicializar o WebDriver

Configurar fio de selênio com gerenciador de drivers web:

serviço = Serviço(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
  • ChromeDriverManager: Faz o download e configura automaticamente o binário correto do ChromeDriver para a versão de seu navegador.
  • seleniumwire_options: Configura o site proxy para o Selenium Wire.
  • opções: Aplica configurações específicas do Chrome.

6. Acessar o site de destino

Navegue até o endpoint ProxyScrape Judge para testar seu proxy:

driver.get('https://ssl-judge2.api.proxyscrape.com/')
  • ProxyScrape Julgar: Esse endpoint retorna informações sobre o proxy que está sendo usado, como seu endereço IP e cabeçalhos.

7. Analisar a resposta

Extraia e exiba seu endereço IP proxy usando regex:

# Exemplo: Extrair o IP da resposta
resposta = driver.page_source

# usando regex simples para analisar o IP de origem
print("Resposta:", resposta)
print("Seu IP é:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# sair da instância do navegador
driver.quit()
  • Explicação do Regex:
    • Corresponde ao cabeçalho HTTP_X_FORWARDED_FOR e extrai o IP proxy
    • Divide o resultado para isolar o endereço IP

Conclusão

Concluindo, o uso do ProxyScrape residencial proxies com o Selenium Wire é uma solução robusta para qualquer pessoa que precise de recursos avançados de automação e da Web scraping com privacidade e segurança aprimoradas.

Seguindo este guia, você pode configurar um ambiente contínuo que não apenas contorna as restrições, mas também exige esforços mínimos de configuração. Esse método aproveita ferramentas avançadas, como o Selenium Wire e o WebDriver Manager, para gerenciar e rotear com eficiência o tráfego por meio do site proxies, garantindo que suas tarefas scraping permaneçam eficientes e confiáveis.

Se precisar de ajuda com o site scraping ou tiver dúvidas sobre o nosso produto, não hesite em entrar em contato conosco pelo chat ao vivo. Você também pode participar de nossa comunidade Discord para obter suporte e atualizações.