Como usar proxies gratuitos com Selenium ou Puppeteer

Como usar proxies gratuitos com Selenium ou Puppeteer

Entendendo Proxies na Automação Web

Os proxies atuam como agentes clandestinos da internet, mascarando seu endereço IP e permitindo que você navegue pelas fronteiras digitais com sutileza. No contexto da automação web — onde Selenium e Puppeteer se enfrentam no teatro do navegador — os proxies são indispensáveis para contornar limites de taxa, restrições geográficas e vigilância. Proxies gratuitos, embora instáveis e efêmeros, podem ser suficientes para cenários de teste ou extração de dados leves e não críticos.

Tipos de proxies e suas características

Tipo de proxy Nível de anonimato Protocolos suportados Caso de uso típico Confiabilidade
HTTP Baixo a médio HTTP, HTTPS Extração simples de dados da web Baixo
SOCKS4/5 Alto SOCKS4, SOCKS5 Protocolos complexos, HTTPS Médio
Transparente Nenhum (revela o IP) HTTP, HTTPS Armazenamento em cache, uso interno Muito baixo
Elite/Anônimo Alto HTTP, HTTPS Ignorando bloqueios geográficos Médio

Para uma lista completa de proxies gratuitos, consulte https://free-proxy-list.net/ ou https://www.sslproxies.org/.

Utilizando proxies gratuitos com Selenium (Python)

1. Instalando as dependências

pip instalar selênio

Baixe a versão mais recente. ChromeDriver Compatível com a sua versão do Chrome.

2. Configurando um proxy no Selenium

O navegador, essa marionete digital, pode ser comandado da seguinte forma:

from selenium import webdriver from selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Replace with your free proxy options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()

Tabela: Alternadores de proxy comuns do Chrome

Opção Descrição
--proxy-server=http://IP:PORT Configurar proxy HTTP
--proxy-server=https=IP:PORT Configurar proxy HTTPS
--proxy-bypass-list=localhost;127.0.0.1 Excluir endereços do proxy

3. Utilizando Proxies com Autenticação

Proxies gratuitos com autenticação são raridades, mas caso você encontre um:

from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # Proxies autenticados requerem uma solução alternativa com extensão do Chrome from selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( callbackFn, {{urls: [" "]}}, ['blocking'] ); """ # Crie o plugin de extensão de proxy pluginfile = 'proxy_auth_plugin.zip' com zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')

Referência: Autenticação de proxy Selenium (Gist do GitHub)

Utilizando proxies gratuitos com Puppeteer (Node.js)

1. Instalando o Puppeteer

npm instalar marionetista

2. Iniciando o Puppeteer com um proxy

Deixe o navegador exibir sua nova máscara:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

3. Gerenciamento da autenticação de proxy

Quando o porteiro exige credenciais:

const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();

4. Rotacionando Proxies no Puppeteer

Um balé de identidades efêmeras, orquestrado da seguinte forma:

const proxies = [ 'http://proxy1:porta', 'http://proxy2:porta', 'http://proxy3:porta' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxies) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();

Fontes de proxy gratuitas

Nome URL Características
Lista de Proxy Gratuita https://free-proxy-list.net/ Grande lista HTTP/S, atualizada.
Proxies SSL https://www.sslproxies.org/ Proxies HTTPS, atualização rápida
Raspagem de proxy https://proxyscrape.com/free-proxy-list Protocolos múltiplos
Espiões.um http://spys.one/en/ Filtragem avançada

Melhores práticas e limitações

  • Natureza Efêmera: Os proxies gratuitos costumam desaparecer sem aviso prévio; monitore a sua disponibilidade usando ferramentas como Verificador de Proxy.
  • Velocidade e confiabilidade: Espere latência, tempos limite e, ocasionalmente, becos sem saída.
  • Segurança: Nunca utilize proxies gratuitos para contas sensíveis — ataques do tipo "homem no meio" espreitam nas sombras.
  • Considerações legais e éticas: Respeite sempre o arquivo robots.txt e os termos de serviço.

Exemplo de Validação de Proxy (Python)

Antes de abrir o navegador, teste a conexão do proxy:

import requests proxy = "186.121.235.66:8080" proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"} try: response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) print(response.json()) except Exception as e: print(f"Proxy falhou: {e}")

Links de recursos

Théophile Beauvais

Théophile Beauvais

Analista de Proxy

Théophile Beauvais é um Proxy Analyst de 21 anos na ProxyMist, onde é especialista em curadoria e atualização de listas abrangentes de servidores proxy do mundo todo. Com uma aptidão inata para tecnologia e segurança cibernética, Théophile se tornou um membro essencial da equipe, garantindo a entrega de servidores proxy SOCKS, HTTP, elite e anônimos confiáveis gratuitamente para usuários do mundo todo. Nascido e criado na pitoresca cidade de Lyon, a paixão de Théophile por privacidade digital e inovação foi despertada em tenra idade.

Comentários (0)

Ainda não há comentários aqui, você pode ser o primeiro!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *