Na začátku byla vcelku úsměvná výzva provozovatele serveru ousidermedia.cz k přepočtení volebních výsledků. Takto samozřejmě nejdou falšovat výsledky ani v tom nejbanánovitějším bananistánu. Nicméně problém mne zaujal, protože s těmi daty by si člověk mohl vyhrát. Navíc to znělo tak jednoduše… :)
OM: Najděte na stránkách ČSÚ (po kliknutí na kód před názvem okresu) výsledky Vašeho okresu a zapište výsledky parlamentních stran do excelové tabulky v této podobě:
Tak jsem tedy nakoukl a protože jsem nikdy nebyl troškař, chtěl jsem hned vše. Ale…
Abyste se při svém zvráceném smyslu pro humor necítil ošizen, přiznávám se, že jsem nakonec přece jenom na tu borovici vylezl. Bavte se ještě víc a vězte, že první zuřivý pokus dostat se ke klíči jsem podnikl v okovaných botách a s tím bláznivě těžkým tlumokem na zádech.
(Z. Jirotka, Saturnin)
… bavte se ještě lépe. V první chvíli nadšení a bez rozmyslu jsem na to pustil stahovač s hloubkou 4 a doufal v hrubou sílu. Až to budu mít na disku, tak s tím přece něco udělám, ne? Až po nějaké čase jsem si všiml, že počet souborů v adresáři přesahuje 10 000 a k jádru dat jsem se neposunul ani o milimetr. Nezbylo, než zapojit mozek, anebo to vzdát. Ale na to už bylo pozdě.
Krok za krokem jsem získával jistotu, že způsob zveřejnění dat je volen přesně tak, aby odradil amatérské čmuchaly, jako jsem já (a to jsem ještě nečetl "Prohlášení o přístupnosti"). Ne, nic podstatného, velkého či vznešeného, jen tisíc malých problémů, překážek a nepravidelností, které musíte krok za krokem překonávat. Jen ty nejvážnější, které jsem jako IT amatér musel přetrpět:
– URL souboru nemůže být zapsána jako jméno souboru
– jiný přístup k výsledkům v jednookrskových a víceokrskových obcí, o zahraničí ani nemluvě; také jiná struktura tabulky
– z hierarchické struktury přístupu k okrskům vedou odkazy i do zcela jiných částí, například k výsledkům za obce
– ve výsledcích okrsku chybí číslo obce
– občas je zde okres, jindy ne
– výsledky rozděleny do několika tabulek na jedné html stránce
– mezery mezi tisíci a stovkami (docela chuťovka)
– docela hloupé kódování (z lenosti jsem neřešil)
– neexistence pořádných číselníků
K získání volebních výsledků v jednotlivých okrscích bylo třeba stáhnout téměř 17000 html souborů a z jejich kódu ta data vytáhnout. URL všech souborů jsou v souboru za článkem, s výjimkou zahraničních obvodů, které jde stáhnout přímo z příslušné stránky (je to malé). Vlastní objem souborů s výsledky je více než 160 MB.
Následná fáze vytažení dat byla dost otravná díky výše uvedeným rozdílům v jednotlivých tabulkách a také mým amatérským přístupem ke zpracování textu. IT specialisty asi pobavím, že jsem tak učinil mou oblíbenou hračkou jménem SciLab, kde si pamatuji alespoň základy.
Současně je ale třeba připomenout, že ve stažených datech není obsažena informace o preferencích jednotlivých kandidátů. Podle mého odhadu by bylo třeba stáhnout okolo 150 tisíc dalších souborů (předpokládám v průměru 10 na každý okrsek) a na to jsem opravdu chuť neměl. Už tak jsem asi u ČSÚ velmi významně zapsán ve špiclovacích souborech.
Ale dost stížností na ČSÚ a přejděme k věci. Výsledek otravné práce je v souborech pod článkem. Díky vlastnostem bloguje.cz nešly bohužel soubory přichystat rozumněji. Stáhněte je tedy pravým tlačítkem volbou něco jako "Uložit cíl…", odstraňte příponu .jpg, změňte na prosté .zip a proveďte dekompresi. Výsledky sedí v hlavních rysech, zkontrolovat jsem ale jen ČR a kraje.
Přeji příjemnou zábavu a příště se podíváme na nějaké ty počty nad výsledky.
LinkyObvodu.zip Obsahuje dva textové soubory s URL jednookrskových a více okrskových obcí, není obsaženo zahraničí
Volby1.zip Výsledky v minimalistické formě, bez popisů, jen kódy obcí a krajů, formát csv
Volby2.zip To samé v xls jen doplněno o číselník stran, jména krajů, obcí a okresů a příprava na filtrování podle různých kritérií. Jména obcí a okresů mají vadné kódování, pokud bude mít někdo chuť, opravte to. Já toho měl plné kecky.
Převzato z Nautila