Cómo Recopilar Datos con Python: Tutorial para Principiantes

Python se ha convertido en el lenguaje de programación más popular para la recopilación y análisis de datos. Su sintaxis clara, su enorme ecosistema de bibliotecas y su comunidad activa lo convierten en la herramienta ideal tanto para principiantes como para profesionales. En este tutorial completo, aprenderás desde cero cómo recopilar datos con Python utilizando diferentes técnicas y herramientas.
¿Por qué Python es Ideal para Recopilar Datos?
Python ofrece ventajas únicas para la recopilación de datos. Según el estudio anual de Stack Overflow, Python es el lenguaje más utilizado en ciencia de datos. Estas son las razones principales:
- Sintaxis sencilla: Su código es legible y fácil de aprender, incluso sin experiencia previa en programación.
- Bibliotecas especializadas: Requests, BeautifulSoup, Scrapy, Selenium y pandas cubren todas las necesidades de recopilación.
- Comunidad activa: Miles de tutoriales, foros y documentación disponible en español.
- Versatilidad: Desde web scraping hasta APIs y archivos locales, Python lo maneja todo.
- Integración: Se conecta fácilmente con bases de datos, hojas de cálculo y herramientas de visualización.
Instalación y Configuración del Entorno
Antes de empezar a recopilar datos con Python, necesitas configurar tu entorno de desarrollo. Sigue estos pasos:
1. Instalar Python
Descarga la última versión desde python.org. Durante la instalación, asegúrate de marcar la opción "Add Python to PATH". Para verificar la instalación, abre una terminal y ejecuta: python --version
2. Crear un Entorno Virtual
Los entornos virtuales aíslan las dependencias de cada proyecto. Crea uno con python -m venv recopilar-datos y actívalo con source recopilar-datos/bin/activate (Linux/Mac) o recopilar-datos\Scriptsctivate (Windows).
3. Instalar Bibliotecas Esenciales
Las bibliotecas que utilizarás con más frecuencia para recopilar datos son: requests, beautifulsoup4, pandas, selenium y scrapy. Instálalas con: pip install requests beautifulsoup4 pandas selenium scrapy
Método 1: Recopilar Datos de Sitios Web con Requests y BeautifulSoup
El web scraping es una de las técnicas más utilizadas para recopilar datos con Python. Requests obtiene el contenido HTML, y BeautifulSoup lo analiza para extraer la información relevante.
Ejemplo Práctico: Extraer Titulares de Noticias
Veamos un ejemplo completo de cómo recopilar datos de un sitio web:
import requests
from bs4 import BeautifulSoup
url = "https://ejemplo-noticias.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
titulares = soup.find_all('h2', class_='titular')
for titular in titulares:
print(titular.text.strip())
Este código envía una petición HTTP al sitio web, recibe el HTML, lo analiza con BeautifulSoup y extrae todos los titulares que están dentro de etiquetas h2 con la clase "titular".
Método 2: Recopilar Datos a Través de APIs
Muchas plataformas ofrecen APIs públicas que permiten acceder a sus datos de forma estructurada y legal. Recopilar datos con Python a través de APIs es más eficiente y confiable que el web scraping.
Ejemplo con la API de GitHub
import requests
url = "https://api.github.com/users/python/repos"
response = requests.get(url)
repos = response.json()
for repo in repos[:5]:
print(f"{repo['name']}: {repo['description']}")
Este ejemplo recopila datos de los repositorios públicos de la organización Python en GitHub. Para explorar más opciones, consulta nuestra guía de 30 APIs gratuitas para recopilar datos.
Método 3: Recopilar Datos con Pandas
Pandas es la biblioteca estrella para la manipulación de datos en Python. También es excelente para recopilar datos desde múltiples fuentes como archivos CSV, Excel, tablas HTML y bases de datos SQL.
La función read_html de pandas es particularmente útil: extrae automáticamente todas las tablas HTML de una página web y las convierte en DataFrames, ahorrando horas de trabajo manual.
Método 4: Web Scraping Avanzado con Scrapy
Scrapy es un framework completo para web scraping que permite recopilar datos a gran escala de manera eficiente. A diferencia de BeautifulSoup, Scrapy está diseñado específicamente para extraer datos de sitios web de forma automatizada y concurrente.
Scrapy maneja automáticamente las peticiones, la extracción de datos, el seguimiento de enlaces y la exportación a múltiples formatos. Es ideal para proyectos grandes de recopilación de datos. Si quieres profundizar, lee nuestra guía de herramientas de web scraping.
Método 5: Automatización con Selenium
Selenium permite controlar un navegador web real, lo que es útil para sitios que cargan contenido dinámicamente con JavaScript. Es la herramienta definitiva para recopilar datos de aplicaciones web modernas.
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://ejemplo.com")
elementos = driver.find_elements(By.CLASS_NAME, "dato")
for elemento in elementos:
print(elemento.text)
driver.quit()
Buenas Prácticas al Recopilar Datos con Python
- Respeta robots.txt: Siempre verifica las políticas del sitio antes de hacer scraping.
- Limita la velocidad: Añade pausas entre peticiones para no sobrecargar el servidor.
- Usa headers apropiados: Simula un navegador real con User-Agent.
- Maneja errores: Implementa bloques try-except para gestionar fallos de conexión.
- Almacena los datos: Guarda los resultados en CSV o JSON para no perder el trabajo.
- Respeta la privacidad: No recopiles datos personales sin consentimiento.
Ejemplo Completo: Recopilar Datos Climáticos
Vamos a crear un script completo que recopila datos del clima de varias ciudades utilizando una API gratuita:
import requests
import pandas as pd
import time
ciudades = ["Madrid", "Barcelona", "Valencia", "Sevilla", "Bilbao"]
api_key = "tu_api_key"
datos = []
for ciudad in ciudades:
url = f"https://api.openweathermap.org/data/2.5/weather?q={ciudad}&appid={api_key}&units=metric"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
datos.append({"ciudad": ciudad, "temperatura": data["main"]["temp"], "humedad": data["main"]["humidity"], "descripcion": data["weather"][0]["description"]})
time.sleep(1)
df = pd.DataFrame(datos)
df.to_csv("clima_ciudades.csv", index=False)
print("Datos recopilados exitosamente")
Este script recopila datos climáticos de cinco ciudades españolas, los estructura en un DataFrame de pandas y los guarda en un archivo CSV.
Comparativa con Otras Herramientas
Python no es la única opción para recopilar datos. En nuestro artículo Python vs R vs SQL analizamos las diferencias entre estos lenguajes. También puedes complementar Python con herramientas como Google Apps Script para automatizaciones rápidas o Excel Power Query para análisis preliminares.
Conclusión
Recopilar datos con Python es una habilidad fundamental en la era digital. Hemos visto cinco métodos principales: requests con BeautifulSoup para scraping básico, APIs para datos estructurados, pandas para archivos y tablas, Scrapy para proyectos a gran escala, y Selenium para sitios dinámicos. Cada técnica tiene sus casos de uso, y dominarlas te permitirá recopilar datos de prácticamente cualquier fuente.
Si te ha sido útil este artículo, explora nuestra guía definitiva para recopilar datos y descubre más recursos para convertirte en un experto en recopilación de datos.

Deja una respuesta