transicion-desordenada-diablo/downloader
2023-12-29 12:27:16 -03:00
..
pki mover a downloader/ 2023-12-07 23:53:12 -03:00
ckan_to_datajson.js solo usar limites locales 2023-12-19 12:01:55 -03:00
config.js borrar json duplicado 2023-12-29 12:25:44 -03:00
download_json.js permitir reintentar descargar después de que esté generado el dump 2023-12-29 12:27:16 -03:00
generate_dump_metadata.js descargar de ckan directo inventando un data.json 2023-12-09 16:53:49 -03:00
network.js mejorar lógica de ignorar tls 2023-12-29 12:23:34 -03:00
package.json solo usar limites locales 2023-12-19 12:01:55 -03:00
pnpm-lock.yaml mover a downloader/ 2023-12-07 23:53:12 -03:00
readme.md downloader: corregir readme con nuevo formato url 2023-12-09 17:47:40 -03:00
tsconfig.json downloader: mejorar types 2023-12-09 13:12:43 -03:00

descargador masivo de portales de datos públicos

descarga masivamente archivos de la mayoría de los portales de datos argentinos que tengan un archivo "data.json" (DCAT). la idea es tener un espejo (mirror) lo más perfecto posible en el caso de que cualquiera de las fuentes se caiga.

setup

require Node.js y pnpm

pnpm install

correr

# descargar portal datos.gob.ar
pnpm run run datajson+https://datos.gob.ar/data.json
# guarda en data/datos.gob.ar_data.json

# descargar todos los portales conocidos
pnpm run run
# guarda en data/*

contenedor

docker run --rm -it -v ./data:/data gitea.nulo.in/nulo/transicion-desordenada-diablo/downloader
# 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/*/

formato de repo guardado

  • {url de data.json sin protocolo y con / reemplazado por _}/
    • data.json
    • errors.jsonl: archivo con todos los errores que se obtuvieron al intentar descargar todo.
    • {identifier de dataset}/
      • {identifier de distribution}/
        • {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)
    • ...