En esta sección, presentaremos y explicaremos brevemente los términos clave que constituyen la base de este curso. Es importante comprender estos términos, ya que aparecerán a lo largo de los módulos, secciones y ejercicios. Asegúrese de revisarlos cuidadosamente, ya que le ayudarán a seguir el material con claridad y confianza.
Los temas de esta sección incluyen lo siguiente:
- Sitios web normales y navegadores normales
- Sitios Tor y navegador Tor
- Sitios I2P y navegadores I2P
- LLM e IA
- Web scraping
- Navegadores sin interfaz gráfica
- Proxies
- Conceptos de programación
- Limitación de velocidad
- Captcha
- Bloqueo de cuentas
- Docker
- IDE (VSCode)
- Linux
- Extensiones del navegador
- Bases de datos
- API
Sitios web normales y navegadores normales
Un sitio web normal es cualquier sitio al que se puede acceder públicamente a través de Internet sin necesidad de software especial ni configuraciones de red. Algunos ejemplos son google.com, wikipedia.org y los sitios web de noticias. Estos sitios están alojados en la clearnet, la parte de la web indexada por los motores de búsqueda. Para visitar estos sitios se utilizan navegadores normales como Chrome, Firefox, Edge y Safari. Son compatibles con los estándares web modernos (HTML, CSS, JavaScript) y proporcionan interfaces gráficas para la navegación. No se necesita ninguna configuración especial para acceder a los sitios web normales, lo que los convierte en la principal forma en que la mayoría de las personas interactúan con la web.
Sitio Tor y navegador Tor
Un sitio Tor es un sitio web alojado en la red Tor, normalmente identificado por un dominio .onion. No se puede acceder a estos sitios con navegadores normales; se necesita el navegador Tor, que enruta la conexión a través de múltiples nodos cifrados para ocultar la identidad y la ubicación del usuario. Los sitios Tor suelen denominarse parte de la «web oscura» porque están ocultos a los motores de búsqueda y requieren un acceso especial. Muchos sitios Tor se centran en la privacidad, mientras que otros pueden alojar contenidos ilegales o controvertidos. Tor es utilizado para mantener el anonimato tanto por usuarios legítimos como por delincuentes.
Sitio I2P y navegador I2P
Un sitio I2P es un servicio alojado en la red Invisible Internet Project (I2P). Al igual que Tor, I2P proporciona anonimato, pero funciona de manera diferente, creando túneles peer-to-peer entre los usuarios. Los sitios I2P suelen tener dominios .i2p y solo se puede acceder a ellos a través de un navegador habilitado para I2P o una configuración de proxy. I2P se utiliza principalmente para servicios internos seguros, más que para acceder a la Internet normal. En este curso no trabajaremos con I2P, pero es importante saber que existe como otra red centrada en la privacidad utilizada tanto por usuarios legítimos como por delincuentes.
LLM e IA
Los modelos de lenguaje grandes (LLM) son sistemas avanzados de IA entrenados con enormes conjuntos de datos de texto. Algunos ejemplos son GPT, LLaMA y Claude. Estos modelos generan texto similar al humano, responden preguntas, traducen idiomas y realizan tareas de razonamiento. Los LLM son útiles en la inteligencia sobre amenazas cibernéticas para analizar grandes volúmenes de datos no estructurados, detectar patrones o generar informes. IA se refiere a tecnologías más amplias que permiten a las máquinas simular un comportamiento inteligente. En este curso, utilizará la IA para tareas como detectar publicaciones de IAB, analizar datos de foros y gestionar listas de vigilancia de amenazas.
Bibliotecas de scraping web
python-requests
Una sencilla biblioteca de Python para enviar solicitudes HTTP. Te permite descargar páginas web y respuestas API de forma controlada, lo que resulta útil para extraer datos de sitios web que no dependen en gran medida de JavaScript.
BeautifulSoup
Una biblioteca de Python para analizar documentos HTML o XML. Ayuda a extraer datos navegando por la estructura del documento, como encontrar etiquetas, atributos o texto específicos en una página web.
Headless Browsers
Navegadores que funcionan sin interfaz gráfica. Cargan e interactúan con las páginas web como los navegadores normales, pero están controlados por código. Son útiles para el scraping a gran escala o automatizado.
Headless Browsers
Un navegador sin interfaz es un navegador web que funciona sin una interfaz gráfica visible. Se comporta como un navegador normal, procesando JavaScript, cargando CSS, renderizando páginas y gestionando cookies, pero todo esto ocurre en segundo plano. Los navegadores sin interfaz gráfica se controlan mediante código, lo que permite a los desarrolladores automatizar las interacciones con sitios web con fines como el scraping, las pruebas o la supervisión. Son esenciales cuando se trabaja con sitios web dinámicos o con mucho JavaScript, en los que las simples solicitudes HTTP no son suficientes. Los navegadores sin interfaz gráfica pueden imitar el comportamiento real de los usuarios, lo que ayuda a eludir algunas protecciones contra bots.
Puppeteer
Puppeteer es una biblioteca Node.js que proporciona una API de alto nivel para controlar Chrome o Chromium en modo sin interfaz gráfica o completo. Permite cargar páginas, hacer clic en botones, rellenar formularios, hacer capturas de pantalla y extraer contenido. Puppeteer es popular por su velocidad, estabilidad y profunda integración con el navegador. Puede emular la configuración de los dispositivos, las condiciones de la red y el tamaño de la ventana gráfica, lo que lo hace muy potente para extraer datos de sitios web modernos o probar cómo se comportan las páginas en diferentes escenarios. Enlace: https://github.com/puppeteer/puppeteer
Playwright
Playwright es una moderna herramienta de automatización que admite los navegadores Chromium, Firefox y WebKit. Al igual que Puppeteer, puede ejecutarse en modo sin interfaz gráfica o con interfaz gráfica. Playwright es conocido por manejar tareas complejas como interactuar con flujos de varias páginas, gestionar múltiples contextos de navegador y eludir las protecciones antibot. Ofrece funciones avanzadas como interceptar solicitudes de red, simular entradas de usuario con retrasos realistas y capturar registros de consola. Playwright suele ser la opción preferida para realizar pruebas entre navegadores y scraping en entornos en los que es necesario admitir diferentes navegadores.
Enlace: https://github.com/microsoft/playwright
Selenium
Selenium es uno de los marcos de automatización de navegadores más antiguos y utilizados. Es compatible con muchos lenguajes de programación, incluidos Python, Java y C#. Selenium puede controlar versiones sin interfaz gráfica de Chrome, Firefox y otros navegadores. Se utiliza habitualmente en pruebas, pero también funciona para extraer datos de sitios dinámicos que requieren la interacción del usuario. La flexibilidad de Selenium permite la integración con marcos de pruebas, pero puede ser más lento en comparación con Puppeteer o Playwright para tareas de scraping a gran escala debido a su arquitectura más antigua.
Enlace: https://github.com/SeleniumHQ/selenium
Controlador Chrome no detectado
Selenium y Playwright pueden activar sistemas antibots debido a su tecnología subyacente. Para una solución que minimice la detección, considere el uso de Undetected ChromeDriver, una versión modificada del ChromeDriver de Selenium diseñada para eludir mecanismos antibots como Cloudflare, DataDome, Imperva y Distil Networks. Lo consigue parcheando el binario de ChromeDriver para ocultar las huellas de automatización, como los agentes de usuario y las variables JavaScript, e imitando el comportamiento de un navegador humano.
Enlace: https://github.com/UltrafunkAmsterdam/undetected-chromedriver
Proxies: HTTP, HTTPS, Tor, SOCKS5
Los proxies dirigen el tráfico de Internet a través de otro servidor para ocultar la dirección IP real o eludir restricciones.
- Los proxies HTTP/HTTPS son para el tráfico web estándar.
- Los proxies SOCKS5 funcionan en un nivel de red inferior y admiten cualquier tipo de tráfico.
- Los proxies Tor dirigen el tráfico a través de la red Tor para garantizar el anonimato.
Los proxies son esenciales en el scraping para evitar prohibiciones, distribuir la carga o acceder a contenido bloqueado por región.
Conceptos de programación
- Python y JavaScript son los principales lenguajes utilizados para el scraping y la automatización.
- Bibliotecas/paquetes: conjuntos de código reutilizables para realizar tareas específicas.
- Frameworks front-end: herramientas como Bootstrap, Daisyui, TailwindCSS, React o Vue para crear interfaces web.
- Marcos de trabajo back-end: herramientas como Django, Flask, Laravel o Express para crear lógica del lado del servidor.
- Bases de datos: herramientas como PostgreSQL, MySQL o Firebase para almacenar datos.
- IDE (entorno de desarrollo integrado): software como VSCode, PyCharm o Visual Studio, utilizado para escribir y gestionar código.
- Compiladores: programas que convierten el código en instrucciones ejecutables.
- Entorno virtual: un entorno virtual o venv se utiliza para crear un entorno aislado en el que se pueden instalar múltiples bibliotecas/paquetes sin necesidad de realizar una instalación en todo el sistema. Trabajarás mucho con el entorno virtual de Python.
Limitación de velocidad
La limitación de velocidad es una medida de seguridad que restringe el número de solicitudes que se pueden enviar a un servidor en un periodo determinado. Por ejemplo, un sitio web puede permitir solo 10 solicitudes por minuto desde una dirección IP. Esto evita el abuso, el spam o la sobrecarga. Las herramientas de scraping deben respetar o eludir los límites de velocidad ralentizando las solicitudes, utilizando proxies o distribuyendo la carga entre varias cuentas para evitar la detección y las prohibiciones.
Captcha
Captcha es un sistema de desafío-respuesta diseñado para verificar que un usuario es humano. Evita que los bots automatizados realicen acciones como crear cuentas o extraer datos. Los captchas más comunes consisten en seleccionar imágenes, escribir texto distorsionado o marcar casillas. Para los scrapers, los captchas son un obstáculo importante, y resolverlos a menudo requiere técnicas avanzadas como el reconocimiento óptico de caracteres (OCR) basado en IA o servicios de resolución de terceros.
Bloqueo de cuentas
El bloqueo de cuentas es una función de seguridad que desactiva una cuenta después de un determinado número de intentos fallidos de inicio de sesión o de actividades sospechosas. Esto protege contra los ataques de fuerza bruta y el acceso no autorizado. Al extraer datos o interactuar con sitios que requieren inicio de sesión, debes manejar las credenciales con cuidado, distribuir las acciones entre varias cuentas o utilizar la gestión de sesiones para evitar que se activen los bloqueos.
Docker
Docker es una herramienta que permite empaquetar aplicaciones y sus entornos en contenedores aislados. Esto garantiza que el software se ejecute de la misma manera en todas partes, independientemente del sistema en el que se encuentre. En este curso, se utiliza Docker para configurar sitios web simulados (tanto clearnet como Tor) para que puedas practicar el scraping y el análisis sin interactuar con la infraestructura criminal del mundo real. Hace que el entorno sea portátil, reproducible y fácil de gestionar.
Para instalar Docker, sigue esta guía: https://docs.docker.com/engine/install/
IDE: VSCode
Un entorno de desarrollo integrado (IDE) es un software para escribir, editar y gestionar código. VSCode es un IDE muy popular que admite múltiples lenguajes de programación, proporciona herramientas de depuración, se integra con el control de versiones (como Git) e incluye extensiones para trabajar con Python, JavaScript, Docker y más. En este curso, utilizará VSCode para crear, probar y gestionar su código.
Linux
Linux es un sistema operativo de código abierto ampliamente utilizado en ciberseguridad, desarrollo y entornos de servidor. Ofrece potentes herramientas de línea de comandos, alta estabilidad y flexibilidad para la automatización y la creación de scripts. En este curso, utilizarás Linux como parte de tu entorno de laboratorio para ejecutar scrapers, gestionar contenedores Docker y manejar tareas de procesamiento de datos. Ubuntu es la distribución de Linux preferida para este curso.
Puedes descargar varias distribuciones de Linux, como Ubuntu Desktop o xUbuntu.
Extensión del navegador
Una extensión del navegador es un pequeño módulo de software que añade funciones a un navegador web. Las extensiones pueden modificar el contenido de las páginas, automatizar tareas o interactuar con API. En el scraping y la automatización, las extensiones personalizadas pueden ayudar a extraer datos, eludir restricciones o gestionar sesiones.
Bases de datos
Las bases de datos almacenan, organizan y gestionan datos para facilitar su acceso y análisis.
- MongoDB es una base de datos NoSQL que almacena datos en documentos flexibles similares a JSON, ideales para datos no estructurados o semiestructurados, como las publicaciones extraídas.
- PostgreSQL es una base de datos relacional que almacena datos en tablas estructuradas con esquemas estrictos, adecuada para consultas y relaciones complejas.
API
Una interfaz de programación de aplicaciones (API) permite que un software se comunique con otro software. En el scraping y la automatización, las API proporcionan una forma estructurada de solicitar y recibir datos sin necesidad de analizar el HTML. Muchos sitios ofrecen API públicas o privadas para acceder a los datos, y comprender cómo interactuar con ellas puede hacer que la recopilación de datos sea más rápida y fiable.