Utilização Rápida
Pré-requisitos
Section titled “Pré-requisitos”Python 3.11+ uv (gerenciador de pacotes)
Instalação
Section titled “Instalação”git clone git@github.com:colabhd/mercodocs.gitcd mercodocsuv sync --extra devuv run playwright install chromiumConfiguraçãocp .env.example .env # Edite .env conforme necessárioPrincipais comandos
Section titled “Principais comandos”Listando spiders disponíveis
Section titled “Listando spiders disponíveis”uv run scrapy listExemplo de saída:
mercosur_actas_y_anexosmercosur_comunicados_presidencialesmercosur_declaraciones_presidencialesmercosur_normativaExemplos de coleta
Section titled “Exemplos de coleta”1. Atas e Anexos (Extração Profunda e Multi-órgãos)
Section titled “1. Atas e Anexos (Extração Profunda e Multi-órgãos)”Esta spider percorre automaticamente todos os órgãos do Mercosul (CMC, GMC, CCM, etc.) e captura detalhes profundos de atas e anexos.
Modo Atualização (Incremental): Pula itens que já existem no arquivo .jsonl.
uv run scrapy crawl mercosur_actas_y_anexos -o dados_atas.jsonlModo Coleta Completa (-a full_crawl=True): Ignora o histórico e baixa tudo novamente.
uv run scrapy crawl mercosur_actas_y_anexos -a full_crawl=True -o dados_atas_novo.jsonlTeste rápido por quantidade de órgãos:
uv run scrapy crawl mercosur_actas_y_anexos -a max_orgaos=2 -o teste_actas.jsonlFiltrar órgãos por JSON (com verificação de novos órgãos):
uv run scrapy crawl mercosur_actas_y_anexos -a orgaos_json=config/orgaos.json -a check_orgaos=true -o dados_atas.jsonlSe config/orgaos.json não existir, a spider cria automaticamente com todos os órgãos marcados como enabled=true. Para sincronizar novos órgãos no arquivo (adicionados como enabled=false):
uv run scrapy crawl mercosur_actas_y_anexos -a orgaos_json=config/orgaos.json -a sync_orgaos=true -o dados_atas.jsonlFiltrar órgão específico por argumento (sem editar JSON):
uv run scrapy crawl mercosur_actas_y_anexos -a orgao_id=137 -o dados_atas_grelex.jsonlFiltrar por sigla + foro pai (ex.: GRELEX depende de GMC):
uv run scrapy crawl mercosur_actas_y_anexos -a orgao_sigla=GRELEX -a depende_de_sigla=GMC -a strict_match=true -o dados_atas_grelex.jsonl2. Declarações Presidenciais
Section titled “2. Declarações Presidenciais”uv run scrapy crawl mercosur_declaraciones_presidenciales -o declaraciones.jsonl -s CLOSESPIDER_ITEMCOUNT=33. Comunicados Presidenciais
Section titled “3. Comunicados Presidenciais”uv run scrapy crawl mercosur_comunicados_presidenciales -o comunicados.jsonl4. Normativa
Section titled “4. Normativa”uv run scrapy crawl mercosur_normativa -o normativa.jsonlOpcionalmente, use o atalho:
./scripts/crawl_spider.sh mercosur_declaraciones_presidencialesDownload paralelo de arquivos (PDF/DOC/DOCX/TIF…):
Section titled “Download paralelo de arquivos (PDF/DOC/DOCX/TIF…):”Os spiders continuam focados em coletar metadados e URLs. Para baixar os arquivos binários em paralelo, execute o script dedicado após a coleta:
uv run python scripts/download_assets.py dados_atas_grelex_full.jsonl --output-root downloads --manifest downloads/manifest.json --workers 8Características do fluxo:
deduplicação por URL e por hash de conteúdo; incremental via manifesto (downloads/manifest.json); organização em pastas por spider/órgão/ano; suporte a múltiplos JSONL na mesma execução. falhas ficam registradas no manifesto com status=failed e campo error; ao executar novamente com o mesmo manifesto, as URLs com falha são tentadas de novo.
Exemplo com múltiplos arquivos de entrada:
uv run python scripts/download_assets.py dados_atas.jsonl normativa.jsonl comunicados.jsonl