Prosba: data o hlasování poslanců NR SR

Dobrý den,

Vytvářím ideologickou/stranickou mapu českého a slovenského parlamentu pomocí multidimensional scaling algoritmu w-nominate jako součást mého bakalářského projektu. Potřeboval bych proto údaje o veškerých hlasování poslanců Národní rady SR. Tato data jsou k dispozici na webu NR, zde třeba vidíme jak hlasovala paní Angelovičová v druhém volebním období.

Potřeboval bych tato data ve formátu, který dokážu zpracovat v R (ideálně csv/txt/dta/rda … soubor). Nevíte, jestli takový dataset někde je k dispozici? Pokud ne, je jednoduchý působ, jak data z webu NR scrapovat?

Díky,

Benedikt
University College London

na data.gov.sk co by bola jedna z logickych moznosti taky dataset nie je
najrychlejsie nez to niekde hladat bude si oscrapovat web NRSR
extra zlozite by to byt nemalo, akurat to bude strasne vela dotazov na ich web ako pozeram tu strukturu

1 Like

Vyzerá, že si nejako divno uchovávajú viewstate a niektoré dáta nie sú v URL. Ja by som na to išiel po čo najväčších celkoch (https://www.nrsr.sk/web/default.aspx?SectionId=108) napr. hlasovanie (https://www.nrsr.sk/web/Default.aspx?sid=schodze/hlasovanie/hlasklub&ID=37232) vybral ID poslanca z urlčky pri mene a to ako hlasoval. Neprišiel som na to, ako jednoducho stránkovať. Možno nejaký .NET scraper (neviem odporučiť) alebo ja to na hulváta zvyknem cez selenium, ale to je pomalšie.

A co skusit to vyziadat na mail podla zakona o slobodnom pristupe k informaciam? Vyziadat si zoznam udajov, ktore treba.
Bude to do 30 dni ale uz v ucelenej forme. A mozno ich trkne dat to na data.gov.sk.

Inak zda sa mi jednoduchsie ist cez https://www.nrsr.sk/web/Default.aspx?sid=schodze/hlasovanie/vyhladavanie_vysledok&ZakZborID=13&CisObdobia=7&CisSchodze=42&ShowCisloSchodze=False a potom kliknut do stlpca cislo (napr. 1) a tam vyde cely zoznam poslancov naraz podla hlasovania https://www.nrsr.sk/web/Default.aspx?sid=schodze/hlasovanie/hlasovanie&ID=41928

Myslim ze ked to uz uverejnuju online tak nemaju povinnost tie informacie spracovat inac pre kazdeho potrebu, ale mozem sa mylit

skus napisat corobiapolitici.sk (kontakt@corobiapolitici.sk) resp. mozno niekto z kohovolit.eu bude mat info ci take data existuju (info@kohovolit.eu)

Díky moc za tipy!

Ak ti stačí crawler, tak veľkú časť ich obsahu získaš týmto: https://github.com/OtvorenyParlament/nrsr-crawler. Nemám ho na 100% ale to, čo potrebuješ vie poskytnúť. Úplne staré volebné obdobia majú v niektorých dátových typoch inú štruktúru, tak sa môže stať, že som ich ani neskúšal implementovať.

Ak vydržíš do budúceho týždňa, tak tie dáta sprístupním cez verejné API na stiahnutie (pondelok/utorok zrejme).

4 Likes

Volakedy davno som tam bol na IT oddeleni debatit o datach. Dopadlo to zhruba “typicky” (t.j. neboili nadseni a ako dnes vidime ani medzicasom asi nic nezverejnili) ale videl som tam technicku dokumentaciu k nejakym mobilnym pkam z ktorych vyplyvalo, ze medzi “nejakymi ich servermi” a mobilnymi apkami su API. Ak by teda ine (lahsie) moznosti neboli, odporucam spytat sa na tie API.

https://otvorenyparlament.info/ tito to nemaju? ht: @janhargas

API je tu: https://api.otvorenyparlament.info/graphql. Môžeš na to skúsiť ísť viacerými spôsobmi.

Najšetrnejší pre API je tento:

  1. si stiahneš zoznam poslancov v danom období: https://api.otvorenyparlament.info/graphql?query=query%20{ %20%20allMembers(period_PeriodNum%3A7%2C%20orderBy%3A%20["person__surname"%2C%20"person__forename"]%2C%20first%3A20)%20{ %20%20%20%20totalCount %20%20%20%20pageInfo%20{ %20%20%20%20%20%20hasNextPage %20%20%20%20%20%20hasPreviousPage %20%20%20%20%20%20startCursor %20%20%20%20%20%20endCursor %20%20%20%20} %20%20%20%20edges%20{ %20%20%20%20%20%20node%20{ %20%20%20%20%20%20%20%20url %20%20%20%20%20%20%20%20person%20{ %20%20%20%20%20%20%20%20%20%20id %20%20%20%20%20%20%20%20%20%20externalId %20%20%20%20%20%20%20%20%20%20forename %20%20%20%20%20%20%20%20%20%20surname %20%20%20%20%20%20%20%20} %20%20%20%20%20%20} %20%20%20%20} %20%20} }

  2. hlasovania pre daného poslanca a dané obdobie: https://api.otvorenyparlament.info/graphql?query=query%20{ %20%20allVotingVotes(voting_Session_Period_PeriodNum%3A7%2C%20voter_Person%3A"UGVyc29uVHlwZToxMjI%3D"%2C%20orderBy%3A["-voting__timestamp"]%2C%20first%3A20)%20{ %20%20%20%20totalCount %20%20%20%20pageInfo%20{ %20%20%20%20%20%20hasNextPage %20%20%20%20%20%20hasPreviousPage %20%20%20%20%20%20startCursor %20%20%20%20%20%20endCursor %20%20%20%20} %20%20%20%20edges%20{ %20%20%20%20%20%20node%20{ %20%20%20%20%20%20%20%20vote %20%20%20%20%20%20 voting%20{ %20%20%20%20%20%20%20%20%20%20topic %20%20%20%20%20%20%20%20%20%20timestamp %20%20%20%20%20%20%20%20%20%20url %20%20%20%20%20%20%20%20%20%20result %20%20%20%20%20%20%20%20} %20%20%20%20%20%20} %20%20%20%20} %20%20%20%20 %20%20} }

Stránkovanie sa mi z ruky teraz nechce montovať. Pre viac info sa pozri ako robí requesty samotné UI.

Neviem ako si tieto klientské dotazy urobíš v R, v Pythone ti to pôjde knižnicou gql.

4 Likes

Vytvoril som malé verejne dostupné API: https://nationalcouncilofsr-api.appspot.com/
Zatiaľ nepoužíva permanentú pamäť, každý request = scrape zo stránky NRSR, preto prosím cachovať. Endpoint /voting/{SessionID} sa dá použiť aj na historické hlasovania, je potrebné však nájsť číslo hlasovania (teraz 4xxxx) na stránke NRSR. Pre pripomenienky alebo spoluprácu me neváhajte kontaktovať. Ďakujem

1 Like

https://nrsr.azurewebsites.net/docs/#/