Bienvenido al curso completo de Web Scraping con Python. Este curso te llevará desde los conceptos básicos hasta técnicas avanzadas de extracción de datos web, proporcionándote las habilidades necesarias para construir scrapers robustos y eficientes.
Al finalizar este curso serás capaz de:
- Comprender la estructura HTML y cómo navegar por ella
- Dominar las bibliotecas principales de web scraping en Python
- Crear scrapers eficientes y respetuosos con los sitios web
- Procesar y almacenar datos extraídos de manera efectiva
- Implementar buenas prácticas y consideraciones éticas
- Manejar sitios web dinámicos y APIs
- Resolver problemas comunes de web scraping
- Python Básico: Conocimiento de variables, funciones, bucles y estructuras de datos
- Terminal/Command Line: Uso básico de la línea de comandos
- HTML/CSS Básico: Comprensión básica de etiquetas HTML (se repasará en el curso)
git clone https://github.com/tu-usuario/Web-Scraping_with-Python.git
cd Web-Scraping_with-Python
# Windows
python -m venv venv
venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
jupyter notebook
- ¿Qué es Web Scraping?
- Aplicaciones y casos de uso
- Estructura HTML y DOM
- Herramientas del desarrollador en el navegador
- Tu primer scraper con urllib
- Protocolo HTTP y métodos de petición
- Biblioteca requests
- Introducción a Beautiful Soup
- Navegación por el árbol HTML
- Búsqueda y extracción de elementos
- Sintaxis XPath completa
- Expresiones y funciones XPath
- Selección por atributos y contenido
- XPath vs CSS Selectors
- Casos de uso avanzados
- Sintaxis de CSS Selectors
- Selectores complejos y pseudo-clases
- Combinación de selectores
- Encadenamiento de métodos
- Optimización de selectores
- Arquitectura de Scrapy
- Instalación y configuración
- Creación de proyectos
- Items y pipelines
- Configuración y settings
- Tipos de spiders
- Seguimiento de enlaces
- Manejo de paginación
- Procesamiento paralelo
- Middlewares personalizados
- Limpieza de datos
- Validación y normalización
- Exportación a diferentes formatos (CSV, JSON, Excel)
- Bases de datos (SQLite, PostgreSQL, MongoDB)
- Data pipelines
- Aspectos legales y éticos
- Robots.txt y políticas de uso
- Rate limiting y throttling
- User agents y headers
- Manejo de errores y reintentos
- Detección y evasión de anti-scraping
- requests: Para realizar peticiones HTTP
- Beautiful Soup 4: Parser HTML/XML
- Scrapy: Framework completo de web scraping
- lxml: Parser XML/HTML rápido
- Selenium: Para sitios web dinámicos
- pandas: Manipulación de datos
- numpy: Operaciones numéricas
- matplotlib/seaborn: Visualización
- SQLAlchemy: ORM para bases de datos
- pymongo: Cliente MongoDB
Cada notebook incluye ejercicios prácticos con diferentes niveles de dificultad:
- 🟢 Básico: Ejercicios guiados paso a paso
- 🟡 Intermedio: Ejercicios con menor guía
- 🔴 Avanzado: Desafíos para aplicar múltiples conceptos
- E-commerce Scraper: Extraer información de productos de un sitio de comercio electrónico
- News Aggregator: Recopilar noticias de múltiples fuentes
- Job Board Monitor: Monitorear ofertas de trabajo y crear alertas
- Social Media Analytics: Analizar tendencias en redes sociales
- Real Estate Tracker: Seguimiento de precios inmobiliarios
La carpeta data/
contiene HTML de ejemplo y sitios web de práctica para que puedas experimentar sin afectar sitios reales:
sample_ecommerce.html
: Sitio de e-commerce ficticionews_portal.html
: Portal de noticias de ejemplojob_listings.html
: Listados de trabajo simulados
Las contribuciones son bienvenidas! Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
Este curso es únicamente con fines educativos. Siempre:
- Respeta los términos de servicio de los sitios web
- Implementa rate limiting apropiado
- Considera usar APIs cuando estén disponibles
- Solicita permiso cuando sea necesario
Si tienes preguntas o encuentras problemas:
- Escríbeme en Linkedin
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
⭐ ¡No olvides dar una estrella al repositorio si te resulta útil! ⭐
Última actualización: Agosto 2025