Django app de ejemplo que guarda cookies cifradas por usuario y extrae texto de tablas HTML o DataTables (AJAX/JSON). Permite exportar a JSON/CSV.
⚠️ Respeta Términos de Servicio y leyes. Usa solo tus propias credenciales/cookies.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuserGenera una llave Fernet y colócala en .env (COOKIE_CIPHER_KEY):
python - << 'PY'
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())
PYConfigura .env:
SECRET_KEY=...
COOKIE_CIPHER_KEY=...
TARGET_BASE_URL=https://tu-sitio.com
DATATABLE_PATH=/ruta/de/pagina/que/contiene/la/tabla
# Opcional si conoces el endpoint JSON directamente:
DATATABLE_JSON_PATH=/api/datatable
DEBUG=True
Inicia:
python manage.py runserver- Entra a
http://127.0.0.1:8000/cookies/, pega tu cabecera Cookie (ej:sessionid=...; csrf=...). - Ve a
/para ejecutar la extracción. Si encuentra filas, podrás exportar /export.json o /export.csv.
Con el usuario que guarda las cookies (label default):
python manage.py scrape_datatable --username <tu_usuario> --page-path /mi/pagina --ajax-path /api/data- HTML: busca
<table>y lee<thead>/<tbody>(solo texto). - DataTables AJAX: intenta detectar
ajax: '...'en scripts de la página. Si encuentra, hace GET al endpoint y leedata(oaaData). También puedes pasar el endpoint conDATATABLE_JSON_PATH.
- Paginación de DataTables (enviar
start/length). - Autenticación por login (no solo cookies pegadas).
- Celery para tareas programadas y export a S3/Drive.
- Mapear columnas por selector o key y normalización avanzada.