Einzeiler zum Download der Mitzeichner der Petition gegen Internetsperren trotz Internal Server Error
![](https://seccdn.libravatar.org/avatar/cade75bc5a38eae7b8d86692a7433a68.jpg?s=120&d=mm&r=g)
Hallo, wie Ihr sicher schon gehört habt, läuft gerade eine Online-Petition beim Bundestag gegen die von-der-Leyensche Gesetzesänderung zur Sperrung von Internet Seiten: https://epetitionen.bundestag.de/index.php?action=petition;sa=details;petiti... Zu Anfang konnte man dort die Liste aller Mitzeichner als CSV Datei herunterladen. Eine mögliche Anwendung dieses Downloads wäre die regelmäßige Kontrolle, ob die eigene Zeichnung nicht durch irgendeinen "technischen" Grund verloren gegangen ist. Seit einiger Zeit liefert der Download nur noch "500 Internal Server Error". Daher habe ich folgendes Script geschrieben, das aus den angezeigten Seiten eine CSV Datei erzeugt. Dabei hat sich herausgestellt, daß offensichtlich die Anzahl der Mitzeichner zu dem 500er Fehler führt. Es gelingt nicht, alle Mitzeichner in einer großen HTML Seite zu laden. Daher der for-Loop. Er fragt den Server nach jeweils 10000 Mitzeichnern. Sollte die Gesamtzahl irgendwann 100000 überschreiten, ist die 10 in i<10 anzupassen. Es ist also wohl doch nur ein technisches Problem und nicht irgendeine Art Zensur. Die beiden Cookies 'SMFCookie956' und 'PHPSESSID' müßt Ihr noch setzen. Die nötigen Werte sagt der Firefox, nachdem Ihr Euch auf der Seite angemeldet habt. Dann Edit => Preferences => Privacy => Show Cookies. Dort bei "Search" "epetitionen" eingeben und die beiden Cookies herauskopieren. SMFCookie956=... PHPSESSID=... for ((i=0; i<10; i++)); do \ curl -H "Cookie: SMFCookie956=$SMFCookie956; PHPSESSID=$PHPSESSID" \ -H 'Accept-Encoding: gzip' \ -d 'petition=3860&start='$((i*10000))'&limit=10000' \ 'https://epetitionen.bundestag.de/index.php?action=petition;sa=sign' | zcat; \ done | perl -ne ' /tr class="windowbg2?"/../<\/tr>/ and m!<td.*?>(.*?)</td>! and do { push @l, $1; if(@l==4) {$x{$l[0]}=[@l]; @l=()} }; END { $"="\t"; for (sort {$a<=>$b} keys %x) {print "@{$x{$_}}\n"} } ' >x.csv Torsten -- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/38944c8e44e399fba01f3347cd046c98.jpg?s=120&d=mm&r=g)
Am Samstag, den 09.05.2009, schrieb Torsten Foertsch um 21:58 Uhr:
Hallo,
wie Ihr sicher schon gehört habt, läuft gerade eine Online-Petition beim Bundestag gegen die von-der-Leyensche Gesetzesänderung zur Sperrung von Internet Seiten: https://epetitionen.bundestag.de/index.php?action=petition;sa=details;petit ion=3860
Zu Anfang konnte man dort die Liste aller Mitzeichner als CSV Datei herunterladen. Eine mögliche Anwendung dieses Downloads wäre die regelmäßige Kontrolle, ob die eigene Zeichnung nicht durch irgendeinen "technischen" Grund verloren gegangen ist.
Seit einiger Zeit liefert der Download nur noch "500 Internal Server Error". Daher habe ich folgendes Script geschrieben, das aus den angezeigten Seiten eine CSV Datei erzeugt. Dabei hat sich herausgestellt, daß offensichtlich die Anzahl der Mitzeichner zu dem 500er Fehler führt. Es gelingt nicht, alle Mitzeichner in einer großen HTML Seite zu laden. Daher der for-Loop. Er fragt den Server nach jeweils 10000 Mitzeichnern. Sollte die Gesamtzahl irgendwann 100000 überschreiten, ist die 10 in i<10 anzupassen.
Es ist also wohl doch nur ein technisches Problem und nicht irgendeine Art Zensur.
Die beiden Cookies 'SMFCookie956' und 'PHPSESSID' müßt Ihr noch setzen. Die nötigen Werte sagt der Firefox, nachdem Ihr Euch auf der Seite angemeldet habt. Dann Edit => Preferences => Privacy => Show Cookies. Dort bei "Search" "epetitionen" eingeben und die beiden Cookies herauskopieren.
SMFCookie956=... PHPSESSID=...
for ((i=0; i<10; i++)); do \ curl -H "Cookie: SMFCookie956=$SMFCookie956; PHPSESSID=$PHPSESSID" \ -H 'Accept-Encoding: gzip' \ -d 'petition=3860&start='$((i*10000))'&limit=10000' \ 'https://epetitionen.bundestag.de/index.php?action=petition;sa=sign' | zcat; \ done | perl -ne ' /tr class="windowbg2?"/../<\/tr>/ and m!<td.*?>(.*?)</td>! and do { push @l, $1; if(@l==4) {$x{$l[0]}=[@l]; @l=()} }; END { $"="\t"; for (sort {$a<=>$b} keys %x) {print "@{$x{$_}}\n"} } ' >x.csv
Torsten
-- Need professional mod_perl support? Just hire me: torsten.foertsch@gmx.net
Hallo, vielen Dank dafür. :) Beste Grüße Buschmann ---------------------------------------------------------------------------------- openSUSE-Mitglied - de.opensuse.org Sys-Op http://de.opensuse.org/Benutzer:Buschmann23 http://de.opensuse.org/Teilnahme_am_Projekt http://de.opensuse.org/Geeko_braucht_Sie!
participants (2)
-
Matthias Fehring
-
Torsten Foertsch