EA
Ekosystem Aion
← Wróć do katalogu
BIP Małopolska scraperbuilt-not-running
Slugbip-malopolska
Wzorzec deploynone
Ścieżka repo/var/www/bip-malopolska

Python scraper PDF (UMWM/dotacje/KRS/nieruchomości/OPP).

Głębsze spojrzenie

inspiracja

Prosty, jednorazowy scraper napisany pod konkretne API BIP Małopolskainsight

scraper.py jest zbudowany wokół udokumentowanego API (bip.malopolska.pl/api/contexts/{slug}/articles), z twardo zakodowaną listą 34 slugów instytucji — narzędzie 'discovery + download' pod jednorazowe zebranie PDF-ów z regionu.

źródło: /var/www/bip-malopolska/scraper.py (docstring + SLUGS)

cel

Zebranie korpusu PDF z BIP-ów małopolskich gmin/instytucji do dalszej analizygoal

Cel: pobrać PDF-y (ogłoszenia, przetargi, sprawozdania, nabory) z 34 jednostek publicznych — prawdopodobnie jako korpus pod dalsze przetwarzanie NLP/RAG, choć docelowe wykorzystanie nie jest udokumentowane.

źródło: scraper.py komentarze, pdfs/ (nazwy plików)

zależności

Zależy tylko od zewnętrznego API bip.malopolska.pl — brak integracji wewnątrz-ekosystemowejdependency

Python3 + requests + ThreadPoolExecutor, zapisuje lokalnie (state.json, pdfs/, scraper.log). Brak importów/wpisów w crontab/PM2 łączących z innym projektem Aion.

źródło: crontab -l, pm2 jlist (brak procesu bip)

znaczenie

Potencjalne źródło danych publicznych, ale nieużywane w żadnym obecnym produkcieinsight

15592 pobranych PDF-ów (14.8GB) to realna, ukończona praca zbierania danych, ale nic w ekosystemie obecnie z tego korpusu nie korzysta.

źródło: du -sh pdfs (15G, 15592 plików)

co działa

Scraper ukończył pełny przebieg — 18649/18649 plików przetworzonych, 15592 pobranychtested-ok

Log kończy się wpisem '=== GOTOWE: 15592 PDFów, 14831 MB ===' z 28.06.2026 — proces zakończył się sukcesem, nie przerwaniem.

źródło: scraper.log (ostatnia linia), state.json

co nie działa

Proces nie działa (built-not-running) — to oczekiwane, zadanie już się zakończyłotested-broken

Brak działającego procesu, brak wpisu PM2/crontab — ale skrypt wykonał się do końca naturalnie, to nie awaria tylko zakończone jednorazowe zadanie.

źródło: ps aux (brak wyniku), scraper.log (kończy się 'GOTOWE')

co do przetestowania

Nie zweryfikowano czy 34 zdefiniowane slugi to pełna lista instytucjiuntested

state.json pokazuje 32 done_slugs z 34 w kodzie, a slugs.txt ma 36 pozycji — rozjazd sugeruje edycję list między przebiegami, nie wiadomo czy celową.

źródło: porównanie slugs.txt (36) vs SLUGS w kodzie (34) vs state.json (32)

rekomendacja

Zarchiwizować 15GB PDF-ów poza serwer albo zdefiniować downstream use-caserecommendation

15GB zajmuje istotną część dysku bez jasnego konsumenta danych — warto wskazać projekt który z tego skorzysta albo przenieść pliki poza główny wolumen.

źródło: df -h /var/www (82% used), du -sh pdfs (15G)