Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nodriver — Sucesor de Undetected-Chromedriver. Proporciona un framework ultrarrápido para automatización web, web scraping, bots y cualquier otra idea creativa que normalmente se ve obstaculizada por molestos sistemas anti-bots como Captcha / CloudFlare / Imperva / hCaptcha. | Kitploit
Herramientas/GitHubGitHub/ultrafunkamsterdam/nodriver
Herramientas de PhishingProxies Web e InterceptaciónEvasión de IDS/IPSHerramientas de SuplantaciónScripting y AutomatizaciónEvasión de WAFSeguridad WebCrawlerAnti-Bot

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Suplantación de Huella Digital
Bypass de CAPTCHA
GitHubultrafunkamsterdam/nodriver

nodriver

Sucesor de Undetected-Chromedriver. Proporciona un framework ultrarrápido para automatización web, web scraping, bots y cualquier otra idea creativa que normalmente se ve obstaculizada por molestos sistemas anti-bots como Captcha / CloudFlare / Imperva / hCaptcha.

Ver Repositorio
4.6k43082hace 4 mesesRevisado por Kitploit

NODRIVER

nodriver ofrece una biblioteca de automatización de navegador y webscraping asíncrona de siguiente nivel para python, con una interfaz fácil que simplemente tiene sentido ™

  • Este es el sucesor oficial del Undetected-Chromedriver paquete de python.
  • No más webdriver, no más selenium

para documentación haz clic aquí

La comunicación directa proporciona una resistencia aún mejor contra los cortafuegos de aplicaciones web (WAF), mientras que el rendimiento recibe un enorme impulso. Este módulo es, a diferencia de undetected-chromedriver, completamente asíncrono.

Lo que hace diferente a este paquete de otros paquetes conocidos es la optimización para pasar desapercibido ante la mayoría de las soluciones anti-bot.

Otro punto clave es la usabilidad y la creación rápida de prototipos, así que espera que muchas cosas funcionen -tal cual-, con la mayoría de los parámetros de métodos con valores predeterminados de mejores prácticas. Con 1 o 2 líneas, esto está en funcionamiento, proporcionando una configuración de mejores prácticas por defecto. Además, limpia los archivos creados (perfil) al finalizar.

Se sabe que funciona con

  • chromium
  • chrome
  • edge
  • brave

Aunque la usabilidad y la conveniencia son importantes, también es fácil personalizar completamente todo usando toda la gama de dominios, métodos y eventos de CDP disponibles.

Algunas características

  • Sin dependencia del binario chromedriver ni de Selenium

  • En funcionamiento en 1 línea de código*

  • Utiliza un perfil nuevo en cada ejecución y limpia al salir

  • Guarda y carga cookies en un archivo para no repetir tediosos pasos de inicio de sesión

  • tab.find("sometext")

    tab.find_all("sometext")

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

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

    búsqueda de elementos inteligente y eficiente, por selector o texto, incluido el contenido de iframes. esto también se puede usar como condición de espera para que aparezca un elemento, ya que reintentará durante la duración de hasta que lo encuentre. así que un await tab.select('body') podría usarse como indicador de si una página está cargada. el método find busca por texto, pero no devolverá ingenuamente el primer elemento coincidente, sino que comparará candidatos por la longitud de texto coincidente más cercana (gana la más corta), esto hace que búsquedas como tab.find('accept all') devuelvan el botón real de cookies en lugar de un script en las cabeceras

  • puede conectarse a una sesión de depuración de chrome en ejecución

  • __repr__ descriptivo para elementos, que representa el elemento como html

  • función de utilidad para convertir una instancia de undetected_chromedriver.Chrome en ejecución a una instancia de nodriver.Browser y continuar desde ahí

  • lleno de ayudantes y métodos de utilidad para las operaciones más usadas e importantes

qué hay de nuevo

0.50.1 cambio a modo de conexión plana.

Partes han sido reescritas para usar conexiones planas en el protocolo. ¿Por qué? - los iframes están incluidos en la mayoría de las operaciones. - tab tiene un nuevo método: await tab.get_frames() que devolverá Iframes que son inspeccionables. - find() incluirá iframes, por lo que incluso puedes buscar "verify you are human" y hacer clic en la casilla de verificación en los desafíos js.

Dado que esto requirió bastante reescritura, por favor prueba a fondo, especialmente si ejecutas proyectos grandes.

tab.xpath(selector, timeout=2.5)

¡encuentra nodos usando el selector xpath! consulta tab xpath en la documentación de la API

tab.cf_verify()

encuentra la casilla de verificación y haz clic en ella con éxito esto solo funciona cuando NO estás en modo experto. actualmente solo incluye inglés integrado requiere que el paquete opencv-python esté instalado

tab.bypass_insecure_connection_warning()

método de conveniencia, para la advertencia de página insegura. por ejemplo cuando un certificado no es válido.

tab.open_external_debugger()

te permite inspeccionar la pestaña sin romper tu conexión

tab.get_local_storage()

obtén el contenido de localstorage

tab.set_local_storage(dict)

establece el contenido de localstorage

tab.add_handler(someEvent, callback)

el callback puede aceptar un solo argumento (evento), o 2 argumentos (evento, tab).

start(expert=True)

hace algunos trucos para usuarios más experimentados. Desactiva la seguridad web y los origin-trials, además de asegurar que las shadow-roots estén siempre abiertas. ¡Esto te hace más detectable!

Instalación

necesitas tener chrome (o algún navegador basado en chromium) instalado preferiblemente en la ubicación predeterminada en la máquina donde uses este paquete.

cuando se ejecuta en una máquina sin pantalla, como AWS o cualquier otro entorno donde no haya pantalla, es mejor usar alguna herramienta Xvfb para emular una pantalla. alternativamente, este paquete se puede usar en modo headless.

puedes usar pip para instalar nodriver

pip install nodriver

Para actualizar

pip install -U nodriver

ejemplos de uso

El objetivo de este proyecto (al igual que undetected-chromedriver, en algún momento lejano) es mantenerlo corto y simple, para que puedas abrir rápidamente un editor o una sesión interactiva, escribir o pegar unas pocas líneas y listo.

simple

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())

Opciones de inicio personalizadas

Omitiré el código repetitivo async aquí

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')

Opciones personalizadas usando el objeto Config

Omitiré el código repetitivo async aquí

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
)

una impresión

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()
Descargar herramienta