Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
nodriver — Sucessor do Undetected-Chromedriver. Oferecendo uma estrutura extremamente rápida para automação web, web scraping, bots e quaisquer outras ideias criativas que normalmente são dificultadas por sistemas irritantes de anti-bot como Captcha / CloudFlare / Imperva / hCaptcha. | Kitploit
Ferramentas/GitHubGitHub/ultrafunkamsterdam/nodriver
Ferramentas de PhishingProxies Web e InterceptaçãoEvasão de IDS/IPSFerramentas de ImpersonaçãoScripting e AutomaçãoBypass de WAFSegurança WebRastreadorAnti-Bot

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Falsificação de Impressão Digital
Bypass de CAPTCHA
GitHubultrafunkamsterdam/nodriver

nodriver

Sucessor do Undetected-Chromedriver. Oferecendo uma estrutura extremamente rápida para automação web, web scraping, bots e quaisquer outras ideias criativas que normalmente são dificultadas por sistemas irritantes de anti-bot como Captcha / CloudFlare / Imperva / hCaptcha.

Ver Repositório
4.6k43081há 4 mesesRevisado pelo Kitploit

NODRIVER

nodriver fornece uma biblioteca de web scraping assíncrono e automação de navegador de outro nível para python, com uma interface fácil que simplesmente faz sentido ™

  • Este é o sucessor oficial do pacote python Undetected-Chromedriver .
  • Chega de webdriver, chega de selenium

para documentação, clique aqui

A comunicação direta oferece resistência ainda melhor contra firewalls de aplicações web (WAF’s), enquanto o desempenho ganha um enorme impulso. Este módulo, ao contrário do undetected-chromedriver, é totalmente assíncrono.

O que torna este pacote diferente de outros pacotes conhecidos é a otimização para permanecer indetectado para a maioria das soluções anti-bot.

Outro ponto de foco é a usabilidade e a prototipagem rápida, então espere que muita coisa funcione -as is-, com a maioria dos parâmetros de métodos tendo padrões de best practice (boas práticas). Usando 1 ou 2 linhas, ele está pronto para funcionar, fornecendo configuração de boas práticas por padrão. Ele limpa os arquivos criados (perfil) em seguida.

conhecido por funcionar com

  • chromium
  • chrome
  • edge
  • brave

Embora usabilidade e conveniência sejam importantes, também é fácil personalizar totalmente tudo usando toda a gama de domínios, métodos e eventos do CDP disponíveis.

Alguns recursos

  • Sem dependência do binário chromedriver ou do Selenium

  • Funcionando com 1 linha de código*

  • usa um perfil novo a cada execução e limpa ao sair

  • salva e carrega cookies em arquivo para não repetir etapas tediosas de login

  • tab.find("sometext")

    tab.find_all("sometext")

    tab.select("a[class*=something]")

    tab.select_all("a[href] > div > img")

    busca de elementos inteligente e eficiente, por seletor ou texto, incluindo conteúdo de iframes. isso também pode ser usado como condição de espera para um elemento aparecer, pois tentará novamente durante o período de <timeout> até encontrar. Portanto, um await tab.select('body') pode ser usado como indicador de se uma página foi carregada. o método find busca por texto, mas não retorna ingenuamente o primeiro elemento correspondente; em vez disso, combina candidatos pela correspondência mais próxima em comprimento de texto (o mais curto vence), isso faz com que buscas como tab.find('accept all') retornem o botão real de cookies em vez de um script nos cabeçalhos

  • pode se conectar a uma sessão de depuração do chrome em execução

  • __repr__ descritivo para elementos, que representa o elemento como html

  • função utilitária para converter uma instância undetected_chromedriver.Chrome em execução em uma instância nodriver.Browser e continuar a partir daí

  • repleto de auxiliares e métodos utilitários para as operações mais usadas e importantes

Novidades

0.50.1 mudança para conexão em modo flat.

Partes foram reescritas para usar conexões flat no protocolo. Por quê? - iframes são incluídos na maioria das operações. - o objeto tab ganhou um novo método: await tab.get_frames() que retornará Iframes inspecionáveis. - find() incluirá iframes, para que você possa até mesmo procurar por "verify you are human" e clicar na caixa de verificação em desafios de js.

Como isso exigiu bastante reescrita, teste minuciosamente, especialmente se você executa projetos grandes.

tab.xpath(selector, timeout=2.5)

encontre nós usando o seletor xpath! veja tab xpath na documentação da API

tab.cf_verify()

encontra a caixa de seleção e clica nela com sucesso isso só funciona quando NÃO está no modo expert. atualmente, apenas inglês embutido requer que o pacote opencv-python esteja instalado

tab.bypass_insecure_connection_warning()

método de conveniência para o aviso de página insegura. por exemplo, quando um certificado é inválido.

tab.open_external_debugger()

permite inspecionar a aba sem quebrar sua conexão

tab.get_local_storage()

obtém o conteúdo do localstorage

tab.set_local_storage(dict)

define o conteúdo do localstorage

tab.add_handler(someEvent, callback)

o callback pode aceitar um único argumento (event) ou 2 argumentos (event, tab).

start(expert=True)

faz alguns ajustes para usuários mais experientes. Desativa a segurança web e origin-trials, além de garantir que shadow-roots estejam sempre abertos. Porém, isso torna você mais detectável!

Instalação

você precisa ter o chrome (ou algum navegador baseado em chromium) instalado, preferencialmente no local padrão, na máquina em que você usa este pacote.

ao executar em uma máquina headless, como AWS ou qualquer outro ambiente onde não há display, é melhor usar alguma ferramenta Xvfb para emular uma tela. alternativamente, este pacote pode ser usado no modo headless.

você pode usar o pip para instalar o nodriver

pip install nodriver

Para atualizar

pip install -U nodriver

exemplos de uso

O objetivo deste projeto (assim como o undetected-chromedriver, em algum momento no passado) é manter tudo curto e simples, para que você possa abrir rapidamente um editor ou sessão interativa, digitar ou colar algumas linhas e começar.

simples

import nodriver as uc

async def main():

    browser = await uc.start()
    page = await browser.get('https://www.nowsecure.nl')

    ... further code ...

if __name__ == '__main__':
    # since asyncio.run never worked (for me)
    uc.loop().run_until_complete(main())

Opções de inicialização personalizadas

Vou omitir o boilerplate assíncrono aqui

from nodriver import *

browser = await start(
    headless=False,
    user_data_dir="/path/to/existing/profile",  # by specifying it, it won't be automatically cleaned up when finished
    browser_executable_path="/path/to/some/other/browser",
    browser_args=['--some-browser-arg=true', '--some-other-option'],
    lang="en-US"   # this could set iso-language-code in navigator, not recommended to change
)
tab = await browser.get('https://somewebsite.com')

Opções personalizadas usando o objeto Config

Vou omitir o boilerplate assíncrono aqui

from nodriver import *

config = Config()
config.headless = False
config.user_data_dir="/path/to/existing/profile",  # by specifying it, it won't be automatically cleaned up when finished
config.browser_executable_path="/path/to/some/other/browser",
config.browser_args=['--some-browser-arg=true', '--some-other-option'],
config.lang="en-US"   # this could set iso-language-code in navigator, not recommended to change
)

uma demonstração

import nodriver

async def main():

    browser = await nodriver.start()
    page = await browser.get('https://www.nowsecure.nl')

    await page.save_screenshot()
    await page.get_content()
    await page.scroll_down(150)
    elems = await page.select_all('*[src]')

    for elem in elems:
        await elem.flash()

    page2 = await browser.get('https://twitter.com', new_tab=True)
    page3 = await browser.get('https://github.com/ultrafunkamsterdam/nodriver', new_window=True)
Baixar ferramenta