forked from ondata/elezionipolitiche2018
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdwVotanti.sh
86 lines (70 loc) · 3.79 KB
/
dwVotanti.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
### requisiti ###
# jq https://stedolan.github.io/jq/
# csvkit https://csvkit.readthedocs.io
### requisiti ###
set -x
mkdir -p ./province
mkdir -p ./tmp
# scarico i dati anagrafici
#curl -sL "http://elezioni.interno.gov.it/assets/enti/camerasenato_territoriale_italia.json" >./dati/camerasenato_territoriale_italia.json
# li converto in CSV
jq '[.enti[]]' ./dati/camerasenato_territoriale_italia.json | in2csv -I -f json >./dati/camerasenato_territoriale_italia.csv
# estraggo la lista dei codici delle province
csvcut -c 1 ./dati/camerasenato_territoriale_italia.csv | grep -E '^.*0000$' | grep -v -E '.*000000$' >./tmp/campioneProvince.csv
# estraggo l'anagrafica dei codici delle province
csvgrep -c "id" -r ".*0000$" ./dati/camerasenato_territoriale_italia.csv | csvgrep -c "id" -i -r ".*000000" >./anagraficaProvince.csv
# scarico i dettagli sui votanti alla Camera
while read p; do
codice=$(echo "$p" | sed -r 's/0000$//g')
echo "$codice"
curl -X GET \
http://elezioni.interno.gov.it/votanti/votanti20180304/votantiCI"$codice" \
-H 'accept: application/json, text/javascript, */*; q=0.01' \
-H 'accept-encoding: gzip, deflate' \
-H 'accept-language: it,en-US;q=0.9,en;q=0.8' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: ead779f5-6125-4c7a-a9d2-46213fe299da' \
-H 'referer: http://elezioni.interno.gov.it/camera/votanti/20180304/votantiCI'"$codice"'' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.106 Safari/537.36' \
-H 'x-requested-with: XMLHttpRequest' | jq '[.righe[]|{provincia:("'"$codice"'" + "0000"),livello,ente,href,comuni_perv,comuni,perc_ore12,perc_ore19,perc_ore23,percprec_ore23}]' >./province/votantiCI"$codice".json
done <./tmp/campioneProvince.csv
# scarico i dettagli sui votanti al Senato
while read p; do
codice=$(echo "$p" | sed -r 's/0000$//g')
echo "$codice"
curl -X GET \
http://elezioni.interno.gov.it/votanti/votanti20180304/votantiSI"$codice" \
-H 'accept: application/json, text/javascript, */*; q=0.01' \
-H 'accept-encoding: gzip, deflate' \
-H 'accept-language: it,en-US;q=0.9,en;q=0.8' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: ead779f5-6125-4c7a-a9d2-46213fe299da' \
-H 'referer: http://elezioni.interno.gov.it/camera/votanti/20180304/votantiSI'"$codice"'' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.106 Safari/537.36' \
-H 'x-requested-with: XMLHttpRequest' | jq '[.righe[]|{provincia:("'"$codice"'" + "0000"),livello,ente,href,comuni_perv,comuni,perc_ore23,percprec_ore23}]' >./province/votantiSI"$codice".json
done <./tmp/campioneProvince.csv
# faccio il merge dei dati sui votanti alla Camera
jq -s add ./province/votantiCI*.json >./votantiCIprovinceRaw.json
# converto in CSV il file di sopra
in2csv <./votantiCIprovinceRaw.json -I -f json >./votantiCIprovince_tmp.csv
# Estraggo i dati soltanto sui Comuni alla Camera
csvgrep <./votantiCIprovince_tmp.csv -c "livello" -r "^2$" >./votantiCIComuni.csv
# Estraggo i dati soltanto sulle Province alla Camera
csvgrep <./votantiCIprovince_tmp.csv -c "livello" -r "^1$" >./votantiCIprovince.csv
# faccio il merge dei dati sui votanti al Senato
jq -s add ./province/votantiSI*.json >./votantiSIprovinceRaw.json
# converto in CSV il file di sopra
in2csv <./votantiSIprovinceRaw.json -I -f json >./votantiSIprovince_tmp.csv
# Estraggo i dati soltanto sui Comuni al Senato
csvgrep <./votantiSIprovince_tmp.csv -c "livello" -r "^2$" >./votantiSIComuni.csv
# Estraggo i dati soltanto sulle Province al Senato
csvgrep <./votantiSIprovince_tmp.csv -c "livello" -r "^1$" >./votantiSIprovince.csv
rm *_tmp*
mv ./*.json ./dati
mv ./*.csv ./dati
#git add .
#git commit -am "update"
#git push