Script: Transcripción de audio con Whisper API
Transcribe archivos de audio/video a texto usando la API de Whisper de OpenAI. Incluye soporte para archivos grandes, timestamps y múltiples idiomas.
Scraper reutilizable con requests + BeautifulSoup4. Incluye manejo de paginación, rate limiting, headers rotativos y exportación a CSV con pandas.
Un scraper robusto y reutilizable, no el típico ejemplo de 10 líneas que no funciona en producción.
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
import random
class WebScraper:
def __init__(self, base_url, delay_range=(1, 3)):
self.base_url = base_url
self.delay_range = delay_range
self.session = requests.Session()
self.session.headers.update({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)',
'Accept-Language': 'es-ES,es;q=0.9',
})
self.data = []
def fetch_page(self, url):
"""Obtiene una página con retry y rate limiting"""
for attempt in range(3):
try:
time.sleep(random.uniform(*self.delay_range))
response = self.session.get(url, timeout=10)
response.raise_for_status()
return BeautifulSoup(response.text, 'html.parser')
except requests.RequestException as e:
print(f"Intento {attempt + 1} fallido: {e}")
if attempt == 2:
raise
def parse_item(self, element):
"""Override este método para tu caso específico"""
return {
'title': element.select_one('.title').text.strip(),
'price': element.select_one('.price').text.strip(),
'url': element.select_one('a')['href'],
}
def scrape(self, pages=5):
for page in range(1, pages + 1):
url = f"{self.base_url}?page={page}"
print(f"Scraping página {page}...")
soup = self.fetch_page(url)
items = soup.select('.product-item')
for item in items:
self.data.append(self.parse_item(item))
return self
def to_csv(self, filename='output.csv'):
df = pd.DataFrame(self.data)
df.to_csv(filename, index=False, encoding='utf-8')
print(f"Exportado: {len(df)} registros → {filename}")
return df
scraper = WebScraper('https://ejemplo.com/productos')
df = scraper.scrape(pages=10).to_csv('productos.csv')
print(df.describe())
Este recurso incluye un enlace externo. Regístrate para acceder.
Regístrate gratis para descargar archivos, guardar recursos en favoritos, ganar XP y acceder a cursos y el foro de la comunidad.
¿Ya tienes cuenta? Inicia sesión
Autor
Erik Taveras
Creado por
Erik Taveras
Transcribe archivos de audio/video a texto usando la API de Whisper de OpenAI. Incluye soporte para archivos grandes, timestamps y múltiples idiomas.
Pipeline de extracción, transformación y carga de datos desde archivos CSV hacia PostgreSQL. Incluye validación, limpieza de datos y manejo de duplicados.
Bot de Telegram funcional con comandos, teclados inline, manejo de estados y persistencia. Base ideal para bots de notificación, soporte o automatización.