13 сентября 2020 года в России прошёл единый день голосования. В некоторых регионах оппозицией была применена стратегия «Умного Голосования», заключающаяся в том, что оппозиционно настроенные избиратели голосуют за единого кандидата, имеющего наивысшие шансы победить представителя от властей.
Процесс отбора кандидатов для «Умного Голосования» уже второй год вызывает дискуссии на тему своей прозрачности. Кроме того, лично меня смущают сложности с подведением итогов стратегии, с которыми могут столкнуться независимые аналитики. Организаторы УмГ не публикуют подробные итоги стратегии, а лишь диаграммы, демонстрирующие сколько оппозиционных кандидатов прошло в региональный парламент.
На сайте «Умного Голосования» нельзя получить список поддержанных кандидатов, указав, например, город и округ. Если кто-то захочет собрать данные по региону, ему предстоит монотонная работа по подбору адресов для каждого округа.
Ни в коем случае не упрекаю разработчиков сайта УмГ, он имеет весь требуемый функционал для реализации стратегии голосования. Но в связи с тем, что в 2019 году никто не занимался сбором и публикацией подробных данных по итогам УмГ (вне московских выборов), на этих выборах я решил взять инициативу в свои руки.
В итоге получилась вот такая сводная таблица. В данной статье я расскажу, как был получен приведённый набор данных, как собиралась информация с сайтов Умного Голосования и нового веб-сервиса ЦИК.
{
"props":{
"pageProps":{
"id":"440384",
"settings":{
"id":1,
"share_photo":"/ganimed-media/share_photo/smartvote_sharepic_1200x628.jpg",
"video_on_main_page":"https://youtu.be/w8gapDGwWMY",
"fake_mode":false,
"title_share":"Объединяемся, чтобы победить Единую Россию",
"text_share":"Мы разные, но у нас одна политика — мы против монополии «Единой России». Всё остальное — математика.",
"telegram_bot_link":"https://tlinks.run/smartvotebot",
"viber_bot_link":"viber://public?id=smartvote",
"facebook_bot_link":"https://facebook.com/umnoegolosovanie/",
"alice_link":null,
"vk_bot_link":null
},
"serverData":{
"commission":{
"id":440384,
"number":"4317",
"address":"354340, Краснодарский край, город Сочи, Адлерский район, улица Богдана Хмельницкого, 24",
"descr":"здание средней школы № 49 им. Н.И. Кондратенко",
"lat":"43.425923",
"lon":"39.920152",
"region_id":26,
"region_intid":"135637827259064320000372513"
},
"campaigns":[
{
"id":26,
"code":"krasnodar-gub-2020",
"title":"Выборы губернатора Краснодарского края",
"is_regional":true,
"ready_date":null,
"district":{
"id":458,
"code":"oik-0",
"name":"0",
"leaflet":""
},
"candidates":[
{
"id":998,
"name":"Кондратьева Вениамина Ивановича",
"share_image":"/elections-api-media/share/26/998.png",
"anticandidate":true,
"self_nominated":false,
"has_won":false,
"has_second_round":false,
"party":{
"title":"Единая Россия",
"antiparty":true
}
}
]
},
{
"id":28,
"code":"krasnodar-sochi-gorduma-2020",
"title":"Выборы в городское собрание Сочи",
"is_regional":false,
"ready_date":null,
"district":{
"id":526,
"code":"oik-2",
"name":"2",
"leaflet":"/elections-api-media/28/526-1334-1335-5385.pdf"
},
"candidates":[
{
"id":1334,
"name":"Киров Сабир Рафаилович",
"share_image":"/elections-api-media/share/28/1334.png",
"anticandidate":false,
"self_nominated":true,
"has_won":false,
"has_second_round":false,
"party":null
},
{
"id":1335,
"name":"Мукаелян Марине Айковна",
"share_image":"/elections-api-media/share/28/1335.png",
"anticandidate":false,
"self_nominated":true,
"has_won":false,
"has_second_round":false,
"party":null
},
{
"id":5385,
"name":"Рябцев Виктор Александрович",
"share_image":"/elections-api-media/share/28/5385.png",
"anticandidate":false,
"self_nominated":false,
"has_won":false,
"has_second_round":false,
"party":{
"title":"КПРФ",
"antiparty":false
}
}
]
}
]
},
"error":null,
"currentUrl":"https://votesmart.appspot.com/candidates/440384"
}
},
"page":"/candidates/[id]",
"query":{
"id":"440384"
},
"buildId":"U8hjaoxZw8TINu-DU_Ixw",
"runtimeConfig":{
"HOST":"https://votesmart.appspot.com"
},
"isFallback":false,
"customServer":true,
"gip":true
}
https://votesmart.appspot.com/api/v1/cik/addresses?query=ADDRESS
{
"suggestions":[
{
"value":"Смоленская область, город Смоленск, Промышленный район, Ленина улица",
"data":{
"fullname":"Смоленская область, город Смоленск, Промышленный район, Ленина улица",
"level":"7",
"region_id":69,
"commission_id":null,
"intid":"138474570115456000000347353",
"path":"135637827259064320000359815,135637827259064320000359819,135637827259064320000359820,138474570115456000000347353",
"snippet":"Смоленская область, город <em>Смоленск</em>, Промышленный район, <em>Ленина</em> улица",
"score":118.84238
}
},
{
"value":"Смоленская область, город Смоленск, Ленинский район, Ленина улица, 12А",
"data":{
"fullname":"Смоленская область, город Смоленск, Ленинский район, Ленина улица, 12А",
"level":"8",
"region_id":69,
"commission_id":1124357,
"intid":"135659820348349440000359937",
"path":"135637827259064320000359815,135637827259064320000359819,135637827259064320000359822,135659820348349440000359708,135659820348349440000359937",
"snippet":"Смоленская область, город <em>Смоленск</em>, Ленинский район, <em>Ленина</em> улица, 12А",
"score":115.14931
}
},
...
]
}
http://cikrf.ru/iservices/voter-services/committee/subjcode/SUBJECT_CODE/num/COMMITTEE_NUM
{
"vrn":"4014001117979",
"name":"Участковая избирательная комиссия №2",
"subjCode":"01",
"numKsa":"01T001",
"vid":"5",
"address":{
"address":"385200, Республика Адыгея, городской округ Адыгейск, город Адыгейск, проспект имени В.И.Ленина, 16",
"descr":"здание МБОУ СОШ№1",
"phone":"8-87772-9-23-72",
"lat":"44.882893",
"lon":"39.187187"
},
"votingAddress":{
"address":"385200, Республика Адыгея, городской округ Адыгейск, город Адыгейск, проспект имени В.И.Ленина, 16",
"descr":"здание МБОУ СОШ№1",
"phone":"8-87772-9-23-72",
"lat":"44.882893",
"lon":"39.187187"
}
}
http://cikrf.ru/iservices/voter-services/vibory/committee/COMMITTEE_VRN
[
{
"vrn":"100100163596966",
"date":"2020-07-01",
"name":"Общероссийское голосование по вопросу одобрения изменений в Конституцию Российской Федерации",
"subjCode":"0",
"pronetvd":null,
"vidvibref":"0"
},
{
"vrn":"25420001876696",
"date":"2020-09-13",
"name":"Выборы депутатов Законодательного Собрания Новосибирской области седьмого созыва",
"subjCode":"54",
"pronetvd":"0",
"vidvibref":"2"
},
{
"vrn":"4544220183446",
"date":"2020-09-13",
"name":"Выборы депутатов Совета депутатов города Новосибирска седьмого созыва ",
"subjCode":"54",
"pronetvd":null,
"vidvibref":"2"
}
]
http://cikrf.ru/iservices/sgo-visual-rest/vibory/CAMPAIGN_VRN/tvd
{
"_embedded":{
"tvdDtoList":[
{
"vrn":457422069601,
"namtvd":"Муниципальная избирательная комиссия города Орла",
"namik":"Муниципальная избирательная комиссия города Орла",
"numtvd":"0",
"vidtvd":"ROOT",
"_links":{
"results":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/457422069597/results/457422069601/proportion"
}
}
},
{
"vrn":457422069602,
"namik":"Окружная избирательная комиссия № 1",
"numtvd":"1",
"vidtvd":"OIK",
"_links":{
"results":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/457422069597/results/457422069602/major"
}
}
},
...
]
},
"_links":{
"self":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/457422069597/tvd"
}
}
}
http://cikrf.ru/iservices/sgo-visual-rest/vibory/CAMPAIGN_VRN/candidates/?page=PAGE_NUM&numokr=NUMTVD
{
"_embedded":{
"candidateDtoList":[
...
{
"index":50,
"vrn":4674020270868,
"fio":"Трофименко Владимир Карпович",
"datroj":"23.04.1964 00:00:00",
"vidvig":"выдвинут",
"registr":"зарегистрирован",
"vrnio":4674220132098,
"namio":"Региональное отделение Политической партии \"Российская партия пенсионеров за социальную справедливость\" в Смоленской области",
"numokr":11,
"tekstat2":"1",
"_links":{
"self":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/4674220125616/candidates/4674020270868"
}
}
},
{
"index":56,
"vrn":4674020269642,
"fio":"Божедомов Евгений Эдуардович",
"datroj":"15.02.1986 00:00:00",
"vidvig":"выдвинут",
"registr":"отказ в регистрации",
"namio":"Самовыдвижение",
"numokr":11,
"tekstat2":"1",
"_links":{
"self":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/4674220125616/candidates/4674020269642"
}
}
},
{
"index":105,
"vrn":4674020271181,
"fio":"Трифоненко Владислав Андреевич",
"datroj":"15.07.1994 00:00:00",
"vidvig":"выдвинут",
"registr":"зарегистрирован",
"vrnio":4674220134054,
"namio":"Смоленское городское отделение политической партии \"КОММУНИСТИЧЕСКАЯ ПАРТИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ\"",
"numokr":11,
"tekstat2":"1",
"_links":{
"self":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/4674220125616/candidates/4674020271181"
}
}
},
...
]
},
"_links":{
"self":{
"href":"http://cikrf.ru/iservices/sgo-visual-rest/vibory/4674220125616/candidates?page=1&numokr=11"
}
},
"page":{
"size":20,
"totalElements":9,
"totalPages":1,
"number":1
}
}
— в законодательные собрания регионов,
— в городские советы региональных центров,
— в городские советы крупных городов (с населением больше 200 тысяч человек)
(А также довыборы в Госдуму по 4 округам).
// Леонид Волков
vybory.izbirkom.ru/region/izbirkom?action=show&vrn=21120001136916&
region=11&prver=1&pronetvd=1
{
"33": [
{
"name": "Бекенева Любовь Александровна",
"vrn": 4444032121758,
"birthdate": "05.05.1958 00:00:00",
"party": "ЕР",
"smart_vote": 0
},
{
"name": "Крохичев Павел Александрович",
"vrn": 4444032122449,
"birthdate": "16.11.1977 00:00:00",
"party": "КПРФ",
"smart_vote": 0
},
{
"name": "Ростовцев Михаил Павлович",
"vrn": 4444032122782,
"birthdate": "27.02.1996 00:00:00",
"party": "ЛДПР",
"smart_vote": 0
},
{
"name": "Морозов Максим Сергеевич",
"vrn": 4444032123815,
"birthdate": "20.11.1991 00:00:00",
"party": "Яблоко",
"smart_vote": 1
},
{
"name": "Захарова Алина Сергеевна",
"vrn": 4444032124060,
"birthdate": "21.07.1996 00:00:00",
"party": "КПКР",
"smart_vote": 0
},
{
"name": "Афанасов Александр Николаевич",
"vrn": 4444032123597,
"birthdate": "21.05.1974 00:00:00",
"party": "СР",
"smart_vote": 0
}
],
...
}
Ивановское городское (местное) отделение Политической партии "Коммунистическая партия Российской Федерации"
Ямало-Ненецкое ОО ПП "КПРФ"
ЧОО ПП КПРФ
КАЛУЖСКОЕ РЕГИОНАЛЬНОЕ ОТДЕЛЕНИЕ политической партии "КОММУНИСТИЧЕСКАЯ ПАРТИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ"
...
http://cikrf.ru/iservices/sgo-visual-rest/vibory/CAMPAIGN_VRN/results/DISTRICT_VRN/major
{
"report":{
"tvd":"",
"date_sign":"none",
"vrnvibref":"457422069597",
"line":[
{
"txt":"число избирателей на момент окончания голосования",
"kolza":"8488",
"index":"1"
},
{
"txt":"число бюллетеней, полученных участковой комиссией",
"kolza":"6700",
"index":"2"
},
...
{
"txt":"число недействительных бюллетеней",
"kolza":"65",
"index":"9"
},
{
"txt":"число действительных бюллетеней",
"kolza":"1948",
"index":"10"
},
...
{
"delimetr":"1"
},
{
"txt":"Авдеев Максим Юрьевич",
"numsved":"1",
"kolza":"112",
"index":"11",
"namio":"ПАРТИЯ ПЕНСИОНЕРОВ в Орловской области",
"perza":"5.56",
"numsvreestr":"4574030258379"
},
{
"txt":"Жуков Александр Александрович",
"numsved":"2",
"kolza":"186",
"index":"12",
"namio":"Орловское региональное отделение Партии СПРАВЕДЛИВАЯ РОССИЯ",
"perza":"9.24",
"numsvreestr":"4574030258723"
},
{
"txt":"Жуков Родион Вячеславович",
"numsved":"3",
"kolza":"54",
"index":"13",
"namio":"Самовыдвижение",
"perza":"2.68",
"numsvreestr":"4574030258555"
},
...
],
"data_gol":"13.09.2020 00:00:00",
"is_uik":"0",
"type":"423",
"version":"0",
"sgo_version":"5.6.0",
"isplann":"0",
"podpisano":"1",
"versions":{
"ver":{
"current":"true",
"content":"0"
}
},
"vibory":"Выборы депутатов Орловского городского Совета народных депутатов шестого созыва",
"repforms":"1",
"generation_time":"14.09.2020 07:59:21",
"nazv":"Результаты выборов по одномандатному (многомандатному) округу",
"datepodp":"14.09.2020 05:44:00"
}
}
{
...
"33": {
"candidate_total": {
"4444032121758": 880,
"4444032122449": 236,
"4444032122782": 143,
"4444032123597": 152,
"4444032123815": 149,
"4444032124060": 72
},
"is_final": 1,
"non_valid_votes": 132,
"registered_voters": 6928,
"valid_votes": 1632
},
...
}
К сожалению, не доступен сервер mySQL