Ao trabalhar com o Puppeteer, uma poderosa biblioteca Node.js usada para automação do navegador, os usuários podem encontrar vários erros ao tentar configurar as definições de proxy. Um dos erros mais específicos é ERR_NO_SUPPORTED_PROXIES
especialmente quando se usa o protocolo socks5h. Este blogue tem como objetivo analisar o erro, explicar as suas causas e oferecer uma solução para ultrapassar o problema.
O que é o Puppeteer?
Marionetista é amplamente utilizado para automação do navegador, raspagem da Web e teste de aplicações Web. Fornece uma versão sem cabeça do Chrome (ou Chromium) e permite aos utilizadores programar acções num ambiente de navegador utilizando JavaScript. Uma das suas principais funcionalidades inclui a capacidade de configurar definições de rede, incluindo proxies, o que o torna uma escolha popular para quem procura automatizar tarefas de scraping atrás de proxies.
O que é o SOCKS5 e o SOCKS5H?
Antes de mergulhar no erro, é importante entender as diferenças entre SOCKS5 e SOCKS5H:
- SOCKS5 é um protocolo proxy versátil que permite a transmissão de dados através de uma ligação TCP. Suporta uma vasta gama de aplicações, incluindo navegação, correio eletrónico e transferências P2P.
- SOCKS5H (SOCKS5 com resolução de nome de host) estende o SOCKS5 resolvendo consultas DNS no servidor proxy em vez de na máquina local. Esta camada adicional de privacidade garante que os pedidos de DNS não vazam, tornando o socks5h a escolha preferida para certos utilizadores preocupados com a segurança.
Porque é que ocorre o erro ERR_NO_SUPPORTED_PROXIES?
O erro ERR_NO_SUPPORTED_PROXIES surge quando o Puppeteer não consegue configurar e se conectar corretamente a um proxy especificado. Isto pode acontecer frequentemente quando os utilizadores tentam usar o protocolo socks5h com o Puppeteer.
Vários factores podem levar a este erro:
Protocolo proxy não suportado: O Puppeteer suporta nativamente certos tipos de proxies, mas pode ter problemas com outros, como o socks5h. Se o protocolo proxy não for suportado, o Puppeteer lançará o erro ERR_NO_SUPPORTED_PROXIES.
Definições de proxy mal configuradas: A configuração incorrecta do proxy ou o fornecimento de um URL de proxy inválido pode dar origem a este erro.
Conflitos de resolução de DNS: Uma vez que o socks5h resolve as consultas DNS no servidor proxy, quaisquer problemas com a resolução DNS ou com o próprio servidor proxy podem despoletar o erro.
Versão desactualizada do titereiro: As versões mais antigas do Puppeteer podem não suportar totalmente as configurações avançadas de proxy, incluindo SOCKS5 ou SOCKS5H.
Como corrigir "ERR_NO_SUPPORTED_PROXIES" no Puppeteer
Aqui está um guia passo a passo sobre como solucionar e resolver este erro:
Passo 1. Verificar o suporte do protocolo proxy
Embora o socks5h forneça proteção contra vazamento de DNS, o Puppeteer não suporta nativamente o protocolo socks5h, mas suporta o socks5. Você pode começar verificando a documentação do Puppeteer para suporte a proxy. Mudar para SOCKS5 pode resolver o problema de 'puppeteer' 'err_no_supported_proxies' 'socks5h' na maioria dos casos. Aqui está um exemplo de como configurar o Puppeteer com um proxy SOCKS5:
const browser = await puppeteer.launch({
args: ['--proxy-server=socks5://'proxy-host':'proxy-port''']
});
Se o seu projeto requer o socks5h devido a questões de resolução de DNS, pode considerar a utilização de um plugin de gestão de proxy (explicado no próximo passo).
Passo 2. Atualizar o Puppeteer para a versão mais recente
Certifique-se de que a versão do Puppeteer que está a utilizar está actualizada. As versões mais recentes geralmente introduzem correções e novos recursos, incluindo suporte aprimorado a proxy. Para atualizar o Puppeteer:
npm install puppeteer@latest
Passo 3. Utilizar o Puppeteer Extra com o Plugin Proxy
Se o socks5h for obrigatório para o seu projeto, considere utilizar o plugin puppeteer-extra-plugin-proxy. Este plugin estende as capacidades de proxy do Puppeteer e suporta configurações de proxy mais avançadas, incluindo o socks5h.
npm install puppeteer-extra puppeteer-extra-plugin-proxy
Depois, no seu script Puppeteer:
const puppeteer = require('puppeteer-extra');
const pluginProxy = require('puppeteer-extra-plugin-proxy');
puppeteer.use(pluginProxy({
proxyUrl: 'socks5h://'proxy-host':'proxy-port''
}));
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
aguardar página.goto('https://example.com');
await browser.close();
});
Esta configuração permite que o Puppeteer use o protocolo socks5h enquanto contorna ERR_NO_SUPPORTED_PROXIES.
Passo 4. Verificar as definições do servidor proxy
Por último, é importante verificar a correção das definições do servidor proxy. Certifique-se de que o servidor proxy suporta socks5h e que não existem restrições que possam impedir a ligação do Puppeteer.
Passo 5. Escolha Proxies com suporte para resolução de DNS
Ao trabalhar com o Puppeteer e proxies, a escolha do provedor de proxy desempenha um papel crítico para evitar erros como ERR_NO_SUPPORTED_PROXIES. Se o socks5h não for um requisito estrito, mas a prevenção de vazamento de DNS for, considere usar serviços de proxy de alta qualidade que lidam com a resolução de DNS com segurança. Para isso, OkeyProxy oferece soluções de proxy robustas que lidam com protocolos SOCKS5, enviando uma escolha ideal para projetos Puppeteer.
Com OkeyProxy, os utilizadores beneficiam de:
- Alta velocidade e estabilidade: As ligações proxy fiáveis garantem que as tarefas de recolha de dados da Web ou de automatização decorrem sem problemas e sem interrupções.
- Suporte SOCKS5: OkeyProxy suporta totalmente o protocolo SOCKS5, tornando-o um ajuste perfeito para as configurações do Puppeteer.
- Cobertura Global: Com uma vasta rede de servidores proxy em todo o mundo, OkeyProxy garante um desempenho ótimo, independentemente da localização.

Para aqueles que procuram o equilíbrio entre desempenho, privacidade e compatibilidade, o OkeyProxy é uma escolha de primeira linha para integrar proxies com o Puppeteer. A vantagem adicional da resolução DNS e das opções avançadas de proxy garante uma navegação ou automatização segura e anónima na Web.
Registo e Contactar a equipa OkeyProxy para obter um teste gratuito de 1GB!
Conclusão
O erro ERR_NO_SUPPORTED_PROXIES no Puppeteer geralmente decorre do uso de protocolos de proxy sem suporte, como o socks5h. Verificando as configurações de proxy, atualizando o Puppeteer para a versão mais recente ou incorporando plug-ins como puppeteer-extra-plugin-proxy, esse problema pode ser resolvido com eficácia. Além disso, a escolha de um fornecedor de proxy fiável como o OkeyProxy pode garantir fluxos de trabalho de automatização do browser suaves e seguros com o Puppeteer.
A adoção dessas dicas de solução de problemas permitirá que os usuários do Puppeteer contornem os erros relacionados ao proxy e obtenham sucesso em seus projetos de automação.