wget
mit Cookies:#!/bin/bash
# Datei mit den beiden Heise-Cookies (notwendig für login)
COOKIEFILE=cookies.txt
# Nummer des ersten runterzuladenden Beitrags (0=der aktuellste)
POST=0
# Nummer des ältesten noch runterzuladenden Beitrags
MAXPOST=122
# eure Usernummer. Findet ihr in der URL der Liste der eigenen Beiträge im Forenprofil.
USERNR=12345
echo
echo "Schritt 1: Laden der Beitragslisten"
echo
while [ $POST -lt $MAXPOST ]; do
printf -v HTML "postlist-%04d.html" $POST
wget --load-cookies $COOKIEFILE -O $HTML http://www.heise.de/extras/foren/user_postings/user-${USERNR}/hs-${POST}/
sed -n '\/foren\/S-.*\/read\// s#.*href="\([^"]*\).*#\1#p' $HTML >> postlist.txt
POST=$(( POST + 16 ))
done
echo
echo "Schritt 2: Laden der einzelnen Beiträge"
echo
sort postlist.txt | uniq | while read line; do
wget --load-cookies $COOKIEFILE -x -N http://www.heise.de$line;
done
Das Vorgehen ist wie folgt:
1. Betreten des heise-Forums und Einloggen.
2. Klick auf Forenprofil.
3. Rechts im Menü Klick auf "Meine Beiträge".
4. Das erste Posting ist immer Nummer 0. Deshalb bleibt
POST=0
gesetzt.5. Die letzte Postingseite ansteuern. Die URL hat die Form
http://www.heise.de/extras/foren/user_postings/user-123456/hs-123/
. Die letzte Zahl solange erhöhen, bis nur noch das letzte Posting aufgelistet wird.6. Die letzte Zahl aus der URL minus Eins für
MAXPOST
und die vorletzte Zahl (12345) für USERNR
im Script eintragen.7. Im Browser nach den Cookies schauen. Das folgende Cookie-File mit dem Wert für
ssoheisede
anpassen und als cookies.txt
speichern:# HTTP cookie file.
# Generated by Wget on 2008-10-30 05:20:54.
# Edit at your own risk.
www.heise.de FALSE / FALSE 122836265 ssoheisede %34%22dirid%22%35%2341...(cryptischer Code, ersetzen!)...
www.heise.de FALSE / FALSE 122836265 ssoinit userdb
Achtung: Zwischen den Feldern stehen Tabs, keine Spaces! Alle Daten außer dem Wert für
ssoheisede
, also "%34...", bleiben unverändert.Dann startet man das Script, und
wget
saugt alle eigenen Beiträge auf die Platte. Wenn es nicht klappt, konnten die Cookies von wget
nicht richtig eingelesen werden, und daher wurden die Benutzerbeiträge nicht erkannt. Das Script tut dann nach der Meldung "Schritt 2: Laden der einzelnen Beiträge" nichts mehr.