transicion-desordenada-diablo/downloader/readme.md

63 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2023-12-08 02:53:12 +00:00
# descargador masivo de portales de datos públicos
2023-11-27 20:04:15 +00:00
2023-11-29 03:35:46 +00:00
descarga masivamente archivos de la mayoría de los portales de datos argentinos que tengan un archivo "data.json" ([DCAT](https://www.w3.org/TR/vocab-dcat-2/)). la idea es tener un espejo (mirror) lo más perfecto posible en el caso de que cualquiera de las fuentes se caiga.
## setup
2023-11-27 20:04:15 +00:00
require [Node.js](https://nodejs.org) y [pnpm](https://pnpm.io/)
```
pnpm install
```
## correr
```
2023-11-29 00:00:19 +00:00
# descargar portal datos.gob.ar
pnpm run run datajson+https://datos.gob.ar/data.json
2023-11-29 00:48:17 +00:00
# guarda en data/datos.gob.ar_data.json
2023-11-29 00:00:19 +00:00
# descargar todos los portales conocidos
pnpm run run
# guarda en data/*
2023-11-27 20:04:15 +00:00
```
2023-11-28 03:44:47 +00:00
2023-11-28 21:38:40 +00:00
## contenedor
```
2023-11-28 22:58:17 +00:00
docker run --rm -it -v ./data:/data gitea.nulo.in/nulo/transicion-desordenada-diablo/downloader
2023-11-28 21:38:40 +00:00
# descarga datos.gob.ar
```
## terminar dump
```
# generar dump-metadata.json (útil para el frontend) y readme.txt
node generate_dump_metadata.js data/
# comprimir todo excepto readme.txt
pigz -1r data/*/
```
2023-11-28 03:44:47 +00:00
## formato de repo guardado
- `{url de data.json sin protocolo y con / reemplazado por _}/`
2023-11-28 03:44:47 +00:00
- `data.json`
2023-11-28 22:58:00 +00:00
- `errors.jsonl`: archivo con todos los errores que se obtuvieron al intentar descargar todo.
- `{identifier de dataset}/`
- `{identifier de distribution}/`
2023-11-28 03:44:47 +00:00
- `{fileName (o, si no existe, identifier de distribution)}`
### ejemplo
- `datos.gob.ar_data.json/`
- `data.json`
- `errors.jsonl`
- `turismo_fbc269ea-5f71-45b6-b70c-8eb38a03b8db/`
  - `turismo_0774a0bb-71c2-44d7-9ea6-780e6bd06d50/`
  - `cruceristas-por-puerto-residencia-desagregado-por-pais-mes.csv`
- ...
- `energia_0d4a18ee-9371-439a-8a94-4f53a9822664/`
   - `energia_9f602b6e-2bef-4ac4-895d-f6ecd6bb1866/`
   - `energia_9f602b6e-2bef-4ac4-895d-f6ecd6bb1866` (este archivo no tiene fileName en el data.json, entonces se reutiliza el `identifier`)
- ...