Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento de texto con Python, Unidad 9 — Procesamiento de texto estructurado, 9.2 — Texto procedente de documentos ·

HTML y scraping básico

HTML y scraping básico

Introducción

HTML, o HyperText Markup Language, es una de las tecnologías fundamentales para la creación de páginas web. Esencialmente, HTML proporciona un marco estructural para la información que se muestra en línea. Sin embargo, a menudo no basta con solo ver esa información; muchas aplicaciones requieren extraer y procesar datos directamente desde las páginas HTML. Este proceso es conocido como "scraping" o "web scraping". En este artículo, exploraremos cómo realizar scraping de HTML usando Python.

Explicación principal

Para realizar scraping de HTML en Python, existen varias bibliotecas disponibles. Una de las más populares y fáciles de usar es BeautifulSoup junto con requests. Este conjunto permite descargar páginas web y analizar su contenido estructurado.

Aquí tienes un ejemplo básico:

import requests
from bs4 import BeautifulSoup

# Descargar la página web
url = "https://example.com"
response = requests.get(url)

# Verificar que la solicitud fue exitosa
if response.status_code == 200:
    # Analizar el contenido de la página con BeautifulSoup
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # Buscar todos los enlaces (a href)
    links = soup.find_all('a')
    for link in links:
        print(link.get('href'))

En este ejemplo, primero se importan las bibliotecas necesarias. Luego, se realiza una solicitud GET a la URL deseada usando requests. Si el status code es 200 (indicando que la solicitud fue exitosa), BeautifulSoup analiza el contenido HTML y busca todos los enlaces (a tags). Finalmente, imprime los href de cada enlace.

Errores típicos / trampas

  1. Problemas con encabezados HTTP: Asegúrate de incluir encabezados en tu solicitud GET para simular un navegador real. Los sitios web pueden rechazar solicitudes sin encabezados.
  1. Derechos de acceso y términos de uso: Verifica los términos de uso del sitio web que estás scraping. Algunos sitios web prohíben el scraping explícitamente o requieren permisos especiales.
  1. Detección por robots.txt: Muchos sitios tienen un archivo robots.txt que indica qué partes de la página pueden ser scrapeadas y cuáles no. Ignorar este archivo puede causar problemas con el sitio web y resulta en malas prácticas de scraping.

Checklist accionable

  1. Instalar las bibliotecas necesarias: Asegúrate de tener instalados requests e BeautifulSoup.
  1. Analizar la estructura HTML del sitio: Identifica los elementos que deseas extraer y cómo están estructurados en el código HTML.
  1. Configurar encabezados HTTP adecuadamente: Incluye los encabezados necesarios para simular un navegador real.
  1. Comprobar robots.txt: Verifica si el sitio tiene restricciones sobre qué partes pueden ser scrapeadas.
  1. Ejecutar el scraping en un entorno de desarrollo: Prueba tu script con una página web pequeña o en local antes de ejecutarlo en producción.
  1. Manejar errores y excepciones: Asegúrate de manejar posibles errores como solicitudes fallidas, contenido mal formado, etc.
  1. Respetar la tasa de scraping: No hagas demasiadas solicitudes a un sitio web en un corto periodo de tiempo para evitar ser bloqueado.

Cierre

El scraping de HTML es una técnica valiosa para obtener datos directamente desde páginas web. Sin embargo, es importante hacerlo con responsabilidad y respeto por los términos de uso del sitio web. Si estás considerando realizar scraping en un proyecto real, asegúrate de cumplir con todas las normas y reglas establecidas.

Siguientes pasos

  • Aprender más sobre análisis de datos: Complementa tus habilidades de scraping aprendiendo a procesar y analizar los datos extraídos.
  • Implementar validación en tiempo real: Asegúrate de que el scraping se realiza correctamente en cada solicitud.
  • Explorar otras bibliotecas: Investiga otras herramientas y bibliotecas para scraping, como Scrapy o PyQuery.

Siguiendo estos pasos y aprendiendo a realizar scraping con cuidado, podrás extraer datos valiosos directamente desde páginas web de manera efectiva.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).