obshtestvo / sledi-parlamenta

Надежден инструмент за справки и анализ на парламентарната активност
http://parliament.obshtestvo.bg/
The Unlicense
13 stars 3 forks source link

Източници #3

Open antitoxic opened 11 years ago

antitoxic commented 11 years ago
antitoxic commented 11 years ago
antitoxic commented 11 years ago

ДАКСИ е платено.

antitoxic commented 11 years ago

А Държавните архиви с ценоразпис били:

http://www.archives.government.bg/old/www.archives.government.bg/index.php@lang=bg&page=22

Копе**нца.

antitoxic commented 11 years ago

Съдейки по този пример: http://www.daxy.com/cgi-bin/help/help.py?page=15

ДАКСИ използват не само инфо от Търговския регистър, а и от БУЛСТАТ. Не знаех че са различни до сега.

И таксите на БУЛСТАТ са: http://bulstat.registryagency.bg/About_Give.html

Предполагам, че ДАКСИ са платили 5000лв вендъж за цялата база данни и след това обновяват on-demand/ad-hoc когато клиентите искат инфо.

banzsh commented 11 years ago

/* еати, разбирам че е една от най-скъпите стоки е информацията, ама ... Макар, че ако тези данни бяха публични, сигурно играта щеше да е твърде честна. /

antitoxic commented 11 years ago

Кой депутат какво точно гласува:

Open Source проект за scraping от @Krastanov

Цитирам негов отговор на мой мейл, който писах след срещата с http://iped.bg :

Здравей,

Всичката информация с която разполагам е взета от сайта на парламента (http://parliament.bg).

Сайтът, който поддържам, съдържащ и презентиращ всичко което съм събрал е http://www.parlamentaren-kontrol.com и е статичен (с малко d3.js за някои визуализации).

Във footer-а на сайта има връзки към три други подобни сайта (http://www.parlamentaren-kontrol.com/links.html). От към качество и валидиране на информацията (източниците съдържат грешки) мисля че моят е най-добрия, но със сигурност от към обхват на информацията е последен).

Проектът се разрастна органично, така че някои части от кода трябва да се подобрят. Когато имам свободно време почиствам, така че вече няма много спагети. Можеш да ползваш каквато и да е част от кода (BSD лиценз) (https://github.com/parlamentaren-kontrol). Вероятно ще работи само под unix, но readme-то е много подробно. Съжалявам че не е под формата на библиотека, но както казах, разрастна се без много планиране (не се смей като видиш *.sh скриптовете ;).

Базата данни която е построена от скрейпъра ми може да се свали от тук (postgre http://www.parlamentaren-kontrol.com/parlamentaren_kontrol_SQL_dump.gz). Схемата има някои недостатъци, но нищо сериозно (схемата се променя понякога когато променям кода и ще бъде подобрена когато имам време).

От изборите насам не съм имал време да ъпдейтна кода. Необходима е минимална промяна в схемата на базата данни за да позволи запазване на информация за повече от един мандат. Вероятно ще го направя на първи август.

Скрейпъра:

  • Парсери за xml за депутатите, но често xml-a е повреден заради некодирани кавички, така че има fallback за cvs. Това е в craw_mps.py
  • Парсери за html и excel за гласуванията и стенограмите.
  • Парсери за законите и законопроектите (без презентиране в сайта ми за момента).
  • За последното правителство има около 40 стенограми които са повредени (някои ги поправиха по мой сигнал, някои не могат да ги поправят). Те са отбелязани като такива в базата данни и в сайта ми. Тези за които за били необходими workarounds са споменати в readme-то.

Статичния сайт:

  • Всички стенограми и гласове (по партии и по депутати) с графики. Имената на депутати в самите стенограми са маркирани.
  • Всички депутати. Линк към официалната им страница където могат да се видят снимки и подобни (гледам да не повтарям неща които вече ги има на parliament.bg). Графики на гласовете и отсъствията им.
  • d3.js граф на взаимоотношенията между депутатите
  • други дреболии (скоро ще добавя законопроектите и законите)

Това е накратко от къде взимам информация, как я обработвам и как я презентирам. Ако мога да помогна с нещо само кажи и ще се опитам да го направя.

Поздрави Стефан

Krastanov commented 11 years ago

Ще се радвам ако може да споделим работата. Вариант в който разделям внимателно "скрейпъра създаващ базата данни" и "генератора на статичен сайт" и след това работим заедно по подбрена версия и на двете звучи ли ви правдоподобен? Нямам против да предам copyright-a за кодът който съм писал на някаква NGO ако сте организирали такава. Очевидно ще ми трябва малко време да почистя кода за да е в състояние в което се разбира от повече от един човек.

antitoxic commented 11 years ago

Аз съм много навит. Говоря в момента по twitter с юруков че и той ще си update-ва http://parliament.yurukov.net/

Само допълвам още източници:

Krastanov commented 11 years ago

ОК, в такъв случай мога да предложа следното: способен съм да предложа база данни и crawler за всичко от parliament.bg (депутати, гласувания, закони и законопроекти са готови, другите неща можем да добавим стъпка по стъпка) и ще се радвам ако можем да ползваме и статичния сайт който вече съм направил. На 3-4 август може да се чуем по skype/gtalk (или среща в Бургас) за да обсъдим как да продължим.

За разлика от parliament.yurukov.net информацията която правя достъпна е само от предишното и сегашното (и бъдещите) народни събрания. Причината е че само те предоставят информация за гласове и закони в удобен формат. За сметка на това качеството на информацията е по-добро, защото тествам за доста грешки.

Естествено, няма да се обидя ако сметнете за по-лесно да започнете от нулата (знам че е некомфортно да се научава чужд код). Удобно ли ще ви е да направим групов чат около 4-ти август?

antitoxic commented 11 years ago

Гледах crawler-a, както и на този юруков. Той каза, че неговият не е автоматичен и трябва пренаписване.

Аз тази събота-неделя се себе-трашнах и написах crawler и scraper, които само по линк на дадено правителство (42ро, 41во...) може да обиколи и да събере данните от всички стенограми или стенограми по нови от дадена дата, или само стеногрмаи от даден времеви период.

Това и още като обяснение:

https://github.com/obshtestvo/rating-gov-representatives/tree/master/apps/mp-votes

Не съм захвърлил ничии труд. Дори искам, ако може да кажеш повече за workaround-ите:

Главното което съм направил:

Aктуалност

Скрипт който може да се пуска всеки ден и да събира само новите стенограми Четеца на XLS-ите поддръжа Excel 2007+, за разлика от питонското xlrd

Модулност

  1. crawler и scraper - единствено събират данните, не ги обработват или запазват. тук още го разделям на crawler с event-и и scraper според event-а
  2. Convertor XLS > CSV - PHP command line инструментче, напълно самостоятелно може да се ползва. Поддържа xls за Excel 2007+, за разлика от питонското xlrd
  3. Отделен скрипт към който може да се насочи намереното от scraper-а и да се оформи във вид удобен за запазване в база данни (това е SQL декоратор скрипта)
  4. Остава да направя малък скрипт, който да поема вече готовите за запазване обекти и да фактически да ги запраща към базата данни
Krastanov commented 11 years ago

Имената https://github.com/parlamentaren-kontrol/parlamentaren-kontrol/blob/master/craw_stenograms.py#L74 Предполагам това е само 1 събрание. Може в следващото наистина да има жена /мъж с такова име? Или поне да ги асоциираме имената със дадена година?

  1. Няколко (около 5) поредни събрания имат такъв проблем (за всяко от имената в речника). Защо не може да се поправят на официалния сайт е описано в README-то (цитирал съм какво са ми казали от парламента).
  2. Година за година съм проверил дали има повтарящи се имена). Но да, ще е полезно да има ID отделно от името. Реших че няма нужда да се занимавам с това в началото, защото по-груби сметки за 50% шанс повтарящо се име са необходими няколко поредни народни събрания.

Тук някакво смачкано excel-че: https://github.com/parlamentaren-kontrol/parlamentaren-kontrol/blob/master/craw_stenograms.py#L212 се преправя?

екселския файл е с грешен формат (непълна линия на едно от местата). Отново в README-то би трябвало да е описано защо не може да го поправят на официалния сайт.

https://github.com/parlamentaren-kontrol/parlamentaren-kontrol/#workarounds

За предишното народно събрание би трябвало да засичаш около 10 повредени стенограми на официалния сайт. В момента нямам време да проверя кои, но в събота ще ти дам списък.

antitoxic commented 11 years ago

Видях го кривия xls: http://parliament.bg/bg/plenaryst/ns/7/ID/2766

Тъпа работа.

Аз съм навързал logger-a в crawler+scraper-а с loggly и alertbirds. Username: obshtestvo. Парола: ще пратя мейл който иска, а иначе ще я сложа в asana по някое време (не веднага).

Което ще рече: като пуснем сайта може през alertbird да си настройваме за кои грешки да ни се праща мейл. За да уловим навреме ако има проблем с тоя тип деформации.

antitoxic commented 11 years ago

Писах на ДАКСИ. Може би пък ще ни дадът облекчен достъп до системата им. Писах главно понеже brra.bg не съдържа инфото от фирми регистрирани само в БУЛСТАТ. Не знам дали още има такива, но изглежда че има.

Ето писмото:

Здравейте,

Казвам се Антон Стойчев и Ви пиша по идея на познати от вестник Капитал.

Аз съм софтуерен разработчик и покрай една статия http://bg.antitoxic.napopa.com/obshtestvo/2013/05/12/puteki-za-promnqna-v-bulgaria-i-avomatizaciq-za-novoto-obshtestvo.html успях да събера още разработчици да работим на доброволчески начела по проекти, инструменти за по силно гражданско общество.

Това беше началото на Май, сега вече имаме започнат проект (https://github.com/obshtestvo/rating-gov-representatives) да показваме профили на депутатите в удобен вид за всеки човек да преглежда. Вече сме написали код да извлича гласовете на всеки депутат от стенограмите. Почваме код да извлича снимки и инфо. Всичко това ще е актуално, така че щом излезна нова стенограма ще обновяваме показваните гласове на даден депутат.

Бихме искали да покажем и тяхното търговско минало. ДАКСИ предлага търсене по име и преглеждане на резултатие като фирми.

След груби сметки мисля че излиза около 4 лева (при все че проверяваме 1 депутат и неговите/нейните средно 5-6 фирми) за всеки 237 (по данни от http://www.parliament.bg/bg/MP) депутати, тоест 1000 лева за всички депутати. Сигурен съм и че съм изпуснал някъде нещо.

Като просто група от доброволци, не можем да си позволим такава сума. Особено ако искаме информацията да е актуална, тоест това да бъде ежемесечно.

Бихте ли могли да помогнете в случая? С какво бихме могли да сме ви от помощ ние? Единствено се сещам: да споменем в сайта до търговските данни на всяка страница, за всеки депутатите, че "Информацията е дарена/предоставена от ДАКСИ". Или алтернативно да сме от помощ в качестото на разработчици?

Желая ви прохладен понеделник, Anton Stoychev, Internet Professional (+44) 7432 899 296