Interessante Situation. Hier eine Analyse, die wahrscheinlich weiterhelfen wird:
HTML:
<form accept-charset="UTF-8" action="https://data.electionsportal.ge/en/download-data" data-action="https://data.electionsportal.ge/en/download-data" id="hidden_form_data" method="post">
<input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="orJuChHgAG0YSGOHOcb87V2xbmxoDxOuo9Xotoo8bd8=" />
<input id="type" name="type" type="hidden" />
<input id="map_title" name="map_title" type="hidden" value="District: Akhmeta - Precincts" />
<input id="event_name" name="event_name" type="hidden" value="2008 Presidential" />
<input id="event_id" name="event_id" type="hidden" value="2" />
<input id="child_shape_type_id" name="child_shape_type_id" type="hidden" value="4" />
<input id="shape_type_id" name="shape_type_id" type="hidden" value="3" />
<input id="shape_id" name="shape_id" type="hidden" value="53177" />
<input id="data_type" name="data_type" type="hidden" value="official" />
<input id="data_set_id" name="data_set_id" type="hidden" value="2" />
</form>
<a href="/en/download/csv/event/2/shape_type/4/shape/53177/event_name/placeholder/map_title/placeholder?data_set_id=2&data_type=official" class="download-link" data-type="csv" id="export-data-csv" title="Download CSV Data File">CSV</a>
Jquery (Form submit):
$(document).ready(function(){
$(".download-link").on("click",function(e){
e.preventDefault(),
$("#hidden_form_data #type").val($(this).data("type")),
$("#hidden_form_data").attr("action",$("#hidden_form_data").data("action")+"."+$(this).data("type")),
$("#hidden_form_data").submit()
})
});
JSFiddle:
https://jsfiddle.net/kai_noack/3onxzbLw/2/
Der sich ergebende Dateiname:
District_Akhmeta_-_Precincts-2008_Presidential-2019_10_07_085429.csv
Bestandteile:
[map_title]-[event_name]-[Rest ist Datum und ID, die wahrscheinlich serverseitig erzeugt wird]
Vorgehen:
Du kannst das form
oben per Copy und Paste vervielfältigen und gibst dann die korrekten Bezirke ein bei name="map_title"
. Danach lädst du dir alle CSV herunter.
Ggf. hilft ein Browser-Plugin, mit dem du POSTs generieren kannst: https://stackoverflow.com/q/4797534
Hast du einen lokalen Server, kannst du auch PHP mit CURL verwenden, um POSTs zu senden. Zum Beispiel:
<?php
// according to the CSV map you want to download
$fields = array(
'map_title' => urlencode('District: Akhmeta - Precincts'),
'event_name' => urlencode('2008 Presidential'),
'authenticity_token' => urlencode('orJuChHgAG0YSGOHOcb87V2xbmxoDxOuo9Xotoo8bd8='),
);
// url-ify the data for the POST
$fields_string = '';
foreach($fields as $key => $value)
{
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string, '&');
// open connection
$ch = curl_init();
// set the url, number of POST vars, POST data
$url = 'https://data.electionsportal.ge/en/download-data';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
?>