Automatize de forma inteligente.
Cresça mais rápido.
NOCODE LTD
Número de registro
HE 449108
[email protegido]
Discord

LinkedIn

Facebook
Instagram

Youtube
Reddit
Deseja ignorar os sistemas de detecção de bots durante a automação Chrome? A puppeteer-extra-plugin-stealth
é uma ferramenta que ajuda a ocultar impressões digitais de automação, dificultando a detecção de bots por sites.
navigator.webdriver
) e imita o comportamento real do navegador.Puppeteer
, puppeteer-extra
, e o plugin stealth via npm or fio. Use o plugin stealth para configurar seu navegador para se comportar como um usuário real.import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
puppeteer.use(StealthPlugin());
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://bot.sannysoft.com');
await browser.close();
})();
Esta ferramenta é perfeita para automatizar tarefas em sites com detecção estrita de bots. Aprenda como configurá-la, otimizar suas configurações e simular comportamento humano para permanecer sem ser detectado.
Para começar, você precisará instalar os pacotes necessários e configurá-los para minimizar a detecção durante a automação. Esta seção abrange o processo de instalação, configuração inicial e testes para garantir que tudo funcione conforme o esperado.
Primeiro, instale Marionetista, Marionetista Extra, e o Plugin furtivo. Abra seu terminal e execute o seguinte comando:
npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Se você estiver usando o Yarn, use este comando:
yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth
Após a instalação, configure seu arquivo JavaScript para integrar o plugin stealth. Aqui está o código que você precisa:
import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';
puppeteer.use(StealthPlugin());
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://nowsecure.nl/');
await browser.close();
})();
Importante: Certifique-se de importar o Puppeteer de 'puppeteer-extra'
em vez de 'puppeteer'
para acessar a funcionalidade adicionada.
Depois de concluir a configuração, é hora de verificar se tudo está funcionando corretamente.
Execute estes testes para confirmar se sua configuração está funcionando conforme o esperado:
Para uma verificação rápida, use o seguinte script:
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://bot.sannysoft.com');
await page.waitForTimeout(5000);
await page.screenshot({ path: 'stealth-test.png' });
await browser.close();
})();
Este script fará uma captura de tela da página de teste. Verifique a captura de tela para ver se seu navegador se comporta como um navegador Chrome comum sem revelar sinais de automação.
Depois que sua configuração passar nesses testes, você estará pronto para mergulhar nos recursos avançados do plugin, que são abordados na próxima seção.
A puppeteer-extra-plugin-stealth
usa várias técnicas para tornar a navegação automatizada mais difícil de detectar.
O plugin ajusta as principais propriedades do navegador para imitar um navegador Chrome típico. Elas incluem:
HeadlessChrome
user-agent com um mais naturalAccept-Language
cabeçalhosnavigator.vendor
para corresponder ao comportamento padrão do ChromeEssas mudanças ajudam a criar um perfil de navegador que parece um usuário comum, não um bot. Além disso, o plugin emprega técnicas anti-impressão digital para reduzir ainda mais o risco de detecção.
Característica | Forma | Propósito |
---|---|---|
Emulação de processador | Limita os processadores lógicos a 4 | Imita o hardware típico do usuário |
Emulação de plugin | Mocks navigator.mimeTypes e plugins |
Imita a funcionalidade padrão do Chrome |
Propriedades da janela | Adiciona outerWidth e outerHeight |
Conclui a simulação do navegador |
Propriedades do fornecedor | Ajusta o identificador do Google no Chrome | Ajuda a evitar a detecção de automação |
Esses métodos garantem que o navegador se comporte de uma maneira alinhada com o que os sites esperam dos usuários reais.
Para disfarçar ainda mais a automação, o plugin remove ou modifica sinais reveladores de atividade de bot:
navigator.webdriver
propriedadechrome.app
e chrome.csi
objetos, que estão presentes em navegadores Chrome regularessourceurl
atributo em scripts do Puppeteerpermissions
propriedades para corresponder ao comportamento natural do navegadorO plugin também ajuda a reduzir os desafios do CAPTCHA mantendo o comportamento consistente do navegador e gerenciando as sessões de forma eficaz. Isso cria um padrão de navegação que se alinha com a atividade humana, permitindo que ele ignore a maioria dos testes de detecção de bot em plataformas como sannysoft.com. No entanto, sistemas anti-bot avançados, como os usados por Cloudflare, ainda pode detectar automação em alguns casos.
A configuração personalizada permite que você ajuste as configurações de furtividade e o comportamento do navegador, ajudando você a evitar a detecção de forma mais eficaz.
O Puppeteer Stealth permite que você gerencie seus módulos de evasão para sites específicos. Você pode habilitar ou desabilitar módulos conforme necessário:
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin({
webglVendor: "Google Inc. (Intel)",
webglRenderer: "Intel Iris OpenGL Engine",
navigator: {
platform: "MacIntel",
languages: ["en-US", "en"]
}
})
Depois de configurar os módulos stealth, você pode ajustar o comportamento do navegador para imitar melhor a atividade real do usuário.
Ajuste os parâmetros do navegador para imitar uma experiência de navegação genuína:
Categoria | Opções | Propósito |
---|---|---|
Identidade do usuário | Agente do usuário, plataforma, idiomas | Cria uma identidade de navegador consistente |
Perfil de Hardware | Fornecedor WebGL, Dimensões da tela | Imita as características reais do dispositivo |
Ambiente de execução | Objetos de tempo de execução do Chrome, propriedades do Navigator | Emula o comportamento normal do navegador |
Introduza atrasos naturais entre as ações para tornar a automação menos detectável:
const randomDelay = (min, max) => {
return Math.floor(Math.random() * (max - min + 1) + min);
}
await page.waitForTimeout(randomDelay(1000, 3000));
Adicionar esses atrasos ajuda sua automação a se assemelhar ao comportamento humano.
O uso de proxies durante a inicialização do navegador aumenta o anonimato:
const browser = await puppeteer.launch({
args: [
`--proxy-server=http://proxy.example.com:8080`,
'--disable-features=IsolateOrigins,site-per-process'
]
});
"É provavelmente impossível evitar todas as maneiras de detectar o cromo sem cabeça, mas deve ser possível torná-lo tão difícil que se torne proibitivo em termos de custo ou acione muitos falsos positivos para ser viável." - TiZho, colaborador do GitHub
Gire proxies e configure failover automático para manter conectividade confiável. Essas configurações ajudam a minimizar riscos de detecção enquanto garantem desempenho estável.
Para manter as sessões automatizadas sob controle, planejamento e execução cuidadosos são essenciais.
Simule uma navegação realista adicionando atrasos e ações aleatórias:
async function emulateHumanBehavior(page) {
// Random scrolling behavior
await page.evaluate(() => {
window.scrollBy({
top: Math.random() * 500,
behavior: 'smooth'
});
});
// Random pauses between actions
await page.waitForTimeout(1500 + Math.random() * 2500);
}
Padrão de comportamento | Implementação | Propósito |
---|---|---|
Movimento do mouse | Curvas e velocidades aleatórias | Imita o movimento natural do cursor |
Interação de página | Varie a profundidade da rolagem e as pausas | Simula hábitos de leitura |
Tempo de navegação | Atrasos aleatórios (1.5–4 segundos) | Evita padrões de tempo previsíveis |
Velocidade de entrada | Intervalos de pressionamento de tecla aleatórios | Imita o comportamento de digitação humana |
Essas interações simuladas funcionam junto com as configurações descritas anteriormente.
O tratamento adequado da sessão garante que as configurações de stealth permaneçam consistentes. Use armazenamento persistente para salvar cookies e dados de sessão:
const browserContext = await browser.createIncognitoBrowserContext({
userDataDir: './sessions/user1',
persistentContext: true
});
Você também pode gerenciar cookies de forma eficaz:
// Remove specific cookies but keep session-critical data
await page.deleteCookie({
name: '_ga',
domain: '.example.com'
});
Combine as técnicas acima com estas etapas práticas para melhor automação:
const maxRetries = 3;
const baseDelay = 2000;
async function fetchWithRetry(page, url) {
for (let i = 0; i < maxRetries; i++) {
try {
return await page.goto(url);
} catch (error) {
await page.waitForTimeout(baseDelay * Math.pow(2, i));
}
}
}
"É provavelmente impossível evitar todas as maneiras de detectar o cromo sem cabeça, mas deve ser possível torná-lo tão difícil que se torne proibitivo em termos de custo ou acione muitos falsos positivos para ser viável." - TiZho, colaborador do GitHub
Fique de olho nos métodos de detecção anti-bot em evolução e ajuste suas configurações conforme necessário. Essas práticas complementam as técnicas de stealth abordadas anteriormente no artigo.
Aqui está um rápido resumo dos principais pontos e dicas para usar Marionetista-extra-plugin-stealth de forma eficaz.
Puppeteer-extra-plugin-stealth ajuda a automatizar a navegação sem ser sinalizado. Ele funciona ocultando marcadores de automação usando módulos de evasão integrados.
Alguns recursos principais incluem:
navigator.webdriver
.Para refinar sua configuração de automação, tenha estas estratégias em mente:
Área de foco | Estratégia | Resultado |
---|---|---|
Módulos de Evasão | Habilite apenas os recursos necessários | Menor risco de detecção, melhor desempenho |
Gestão de Erros | Use lógica de repetição com recuo exponencial | Tratamento mais confiável de problemas temporários |
Tratamento de Sessão | Use contextos de navegador persistentes | Perfil stealth consistente em todas as sessões |
Sugestões adicionais:
Embora nenhuma configuração seja 100% infalível, combinar várias táticas de evasão torna a detecção muito mais difícil. O sucesso depende de uma configuração cuidadosa e atualizações regulares dos seus métodos. Essas dicas, combinadas com os recursos do plugin, criam uma base sólida para automação indetectável.