Mostrando entradas con la etiqueta requests. Mostrar todas las entradas
Mostrando entradas con la etiqueta requests. Mostrar todas las entradas

domingo, 26 de julio de 2026

Día 27 — Web scraping: extrayendo datos de internet

El web scraping consiste en extraer información automáticamente de páginas web. Python destaca en esta tarea gracias a la combinación de dos librerías: requests, que descarga el contenido HTML de cualquier página, y BeautifulSoup, que permite recorrer y extraer elementos concretos de ese HTML de forma sencilla.

Es importante mencionar que antes de hacer scraping a cualquier sitio web conviene revisar su archivo robots.txt y sus términos de servicio, ya que no todas las páginas permiten la extracción automatizada de su contenido.

Código de ejemplo:

import requests from bs4 import BeautifulSoup url = "https://ejemplo.com" respuesta = requests.get(url) soup = BeautifulSoup(respuesta.text, "html.parser") titulos = soup.find_all("h2") for titulo in titulos: print(titulo.text.strip()) # Instalación: pip install requests beautifulsoup4




domingo, 3 de agosto de 2025

🔐 Python Nivel 3 – Parte 5: Consumo de APIs con Autenticación (Tokens, Headers)

 

🎯 ¿Qué aprenderás?

✅ Cómo consumir APIs que requieren autenticación
✅ Diferencias entre APIs con tokens, headers o claves API
✅ Uso de tokens tipo JWT
✅ Ejemplo real con la API de CoinCap
✅ Cómo automatizar consultas autenticadas


🌍 API real: CoinCap (criptomonedas)

🔗 Documentación: https://docs.coincap.io/

Esta API ofrece cotizaciones de criptomonedas. Algunas rutas requieren autenticación con API Key vía encabezado.


📦 Paso 1: Instala requests


pip install requests

🔐 Paso 2: Crea una cuenta y consigue tu API KEY

  1. Ve a https://coincap.io/

  2. Crea cuenta gratuita

  3. Copia tu clave API


📄 Paso 3: Realiza consulta autenticada


import requests # Tu API Key Pro API_KEY = "TU_API_KEY" # URL de CoinCap Pro v3 url = f"https://rest.coincap.io/v3/assets/bitcoin?apiKey={API_KEY}" try: respuesta = requests.get(url) if respuesta.status_code == 200: datos = respuesta.json() # La estructura cambia en v3: datos dentro de "data" precio = float(datos['data']['priceUsd']) print(f"El precio actual de Bitcoin es: ${precio:.2f}") else: print("Error al obtener los datos de Bitcoin") print(f"Código de estado: {respuesta.status_code}") print(f"Mensaje de error: {respuesta.text}") except Exception as e: print("❌ Error de conexión:", e)

🔁 Automatizar la consulta

Puedes ejecutar el script cada hora o guardar el valor en un .txt para seguimiento:

import time
while True: r = requests.get(url, headers=headers) if r.ok: precio = r.json()["data"]["priceUsd"] print(f"[Auto] BTC: ${float(precio):,.2f}") time.sleep(3600) # cada hora

✅ ¿Y si la API usa JWT?

  • Algunas APIs envían un token JWT al hacer POST con usuario/clave.

  • Lo guardas y lo reutilizas en headers como:
    "Authorization": "Bearer TOKEN_JWT"

🔐 Recomendación: Usa variables de entorno o ficheros .env para guardar tus claves, no las pongas directo en el código.


🧠 Aplicaciones reales

✔️ Dashboards de precios en tiempo real
✔️ Integración con bots (Telegram, Discord, etc.)
✔️ Automatización de alertas económicas
✔️ Automatización de reportes o backups usando datos externos


📂 Código completo en GitHub:
github.com/josecodetech

🎥 Guía paso a paso en YouTube:
[Tu canal aquí]



domingo, 27 de julio de 2025

🌐 Python Nivel 3 – Parte 4: Manejo de APIs y Automatización de Consultas HTTP

 

🎯 ¿Qué aprenderás?

✅ Qué es una API y cómo funciona
✅ Cómo enviar peticiones HTTP desde Python (GET, POST, etc.)
✅ Cómo consumir datos en formato JSON
✅ Cómo automatizar consultas a servicios externos
✅ Cómo manejar errores y respuestas


🔍 ¿Qué es una API?

Una API (Interfaz de Programación de Aplicaciones) permite que dos sistemas se comuniquen. En la web, usamos API REST para acceder a datos, enviar formularios, consultar servicios, etc.


📦 Usando requests para consumir APIs

Primero, instala el módulo si no lo tienes:


pip install requests

✅ Ejemplo 1: Consultar una API pública (GET)


import requests url = "https://jsonplaceholder.typicode.com/posts/1" respuesta = requests.get(url) if respuesta.status_code == 200: datos = respuesta.json() print(f"Título: {datos['title']}") else: print("Error al consultar la API")

✅ Ejemplo 2: Enviar datos (POST)


import requests url = "https://jsonplaceholder.typicode.com/posts" nuevo_post = { "title": "Nuevo post", "body": "Contenido del post", "userId": 1 } respuesta = requests.post(url, json=nuevo_post) print(respuesta.json())

🔁 Automatizar llamadas a una API

Puedes combinar esto con el programador de tareas de Windows o un bucle para automatizar la consulta de datos:


import time while True: r = requests.get("https://api.exchangerate-api.com/v4/latest/USD") if r.ok: euro = r.json()["rates"]["EUR"] print(f"1 USD = {euro} EUR") time.sleep(3600) # espera 1 hora

🛑 Manejo de errores y excepciones


try: respuesta = requests.get("https://api.fallida.com/data") respuesta.raise_for_status() print(respuesta.json()) except requests.exceptions.HTTPError as e: print("Error HTTP:", e) except requests.exceptions.RequestException as e: print("Error general:", e)

🧠 Aplicaciones comunes

  • Consultar precios de criptomonedas o monedas

  • Obtener el clima actual

  • Enviar formularios automáticamente

  • Automatizar tareas de scraping de datos

  • Consultar servicios internos de una empresa


📂 Código en GitHub:
github.com/josecodetech

🎥 Tutorial en YouTube:
https://youtu.be/LgJQW_fbZeY