tl;dr: Veřejný rejstřík je nově publikován jako jeden balík, není nutné stahovat ho po kusech z API. Je to ale stále XML, tak jsem to překonvertoval do CSV.
Součástí Administrativního registru ekonomických subjektů (ARES) je nově i sekce otevřených dat. Prvotní náhled dat jsem komentoval na twitteru, tady je kód, kterým jsem vyextrahoval většinu informací ze zdrojových XML souborů do použitelnějšího CSV.
Všechen kód je v jednom Pythoním souboru, potřebujete základní instalaci Pythonu 3 a balík lxml
. V kódu je třeba jen upravit složku se vstupy a výstupy hned nahoře (použijte .
, pokud máte kód a data pohromadě), zbytek by měl běžet jak je.
Skript vytvoří tři soubory:
udaje.csv
se základními údaji o podnicích,fosoby.csv
s fyzickými osobami (společníci, jednatelé, prokuristi atd.),posoby.csv
s právnickými osobami.
Berte na paměť, že ačkoliv pojící sloupec mezi soubory je IČO, není to v udaje.csv
sloupec s unikátními hodnotami, protože podniky mohou mít odštěpné závody, kterým jsem přiřadil stejné IČO (trochu to pak dělá bordel při kombinaci dat, to musím ještě vyřešit).
Data konvertovaná berte jak jsou, neručím bohužel za nic, budu ale rád za reporty jakýchkoliv chyb.
Zatím jsem do dat příliš nezabrušoval, to teprve přijde. Alespoň pár základních věcí k první verzi dat (prosinec 2017):
Obchodní rejstřík 764708
Spolkový rejstřík 136783
Rejstřík společenství vlastníků jednotek 72964
Rejstřík obecně prospěšných společností 3178
Nadační rejstřík 2708
Rejstřík ústavů 888
98214 právnických osob, z toho 762575 stále existujících.
4,7 milionu fyzických a 200 tisíc právnických osob (resp. vztahů, nejde o unikátní osoby).
Trochu jsem to zautomatizoval, takže stačí pustit proc/load.sh
, což zpracuje data do CSV a zároveň nahází data do SQLite databáze (binárka sqlite3
potřeba). Pak tam je ještě serve.py
, což vám na http://localhost:8089
zobrazí prohlížeč (video tutaj).
Netřeba nic kromě SQLite a Pythonu 3, žádné externí knihovny to nepotřebuje, webappka je jeden HTML soubor bez jakýchkoli závislostí. Přešroubovat na Postgre to půjde snadno, krom collate nocase
a .import
v load.sh
nepoužívám nic specifického pro SQLite.
Je to zatím první nástřel, pár věcí chybí,
- vazby fyzických a právnických osob na odštěpné závody nejsou jednoznačné
- vyčlenit je ze seznamu firem pryč - kam pak ale s jejich PO a FO?
- budem pak udělat PK nad IČO
- přepsat info o formátech z twitteru sem
- spousta firem (zejm. ministerstva) není v OR, ale můžou být vlastníky - takže ty by mělo jít dohledat
- pole vznikFunkce, vznikClenstvi, ZpusobJednani, činnosti
- cross check proti specce, co vůbec dává smysl přidávat (např. specka má elementy
PravniForma
neboStatusVerejneProspesnosti
, ale v datech nejsou, stejně tak data narození, rodná čísla atd.) - zastoupení právnických osob (zanořený element
Zastoupeni
)
Stížnosti a tak směřujte na email nebo twitter. A nebo rovnou posílejte pull requesty.