Wie kann ich ein gesamtes (aktives) phpbb-Forum herunterladen?

15457
user28163

Eines der Foren, die ich häufig besuchte (und viele qualitativ hochwertige Inhalte hinzugefügt habe) scheint Probleme mit dem Server zu haben. Ich bin nicht zuversichtlich, dass sie in der Lage sind, die Probleme zu klären und mit einem der Admins zu sprechen, die er erwähnt hat, dass sie die Daten nicht sichern.

Als kompletter Fall, dass etwas schief läuft, möchte ich das gesamte Forum herunterladen. Mir ist bekannt, dass ich weder die Datenbank noch die PHP-Dateien herunterladen kann. Ich möchte nur eine lokal durchsuchbare Kopie des gesamten Forums erstellen.

Das heißt, ich könnte (wenn ich Zeit habe) die Posts auf die neue Site übertragen, falls sie neu starten (absichtlich oder nicht).

Gibt es irgendwelche Werkzeuge, die dies erlauben würden?

Randbemerkung: Natürlich ist es sehr wichtig, dass ich es lokal durchsuchen kann ... was sehr schwierig wäre, wenn jeder der Links immer noch auf " http://www.thesite.com/forum/specific_page.php " statt auf "/ forum" verweist /specific_page.php '.

5
Hier einige Tools als Referenz: https://creativeandcritical.net/fups https://github.com/ProgVal/PHPBB-Extract https://github.com/lairdshaw/fups Tilo vor 5 Jahren 0

5 Antworten auf die Frage

7
Andrew Russell

Ich mache das gerade jetzt. Hier ist der Befehl, den ich verwende:

wget -k -m -E -p -np -R memberlist.php*,faq.php*,viewtopic.php*p=*,posting.php*,search.php*,ucp.php*,viewonline.php*,*sid*,*view=print*,*start=0* -o log.txt http://www.example.com/forum/ 

Ich wollte diese lästigen Session-Id-Sachen herausnehmen (sid = blahblahblah). Sie scheinen automatisch von der Indexseite hinzugefügt zu werden und werden dann auf virenartige Weise an alle Links angehängt. Abgesehen von einem Eichhörnchen, das mit einer einfachen index.php verbunden ist. (Vielleicht gibt es eine Möglichkeit, das rekursive Wget von index.php aus zu starten - ich weiß es nicht).

Ich habe auch einige andere Seiten ausgeschlossen, die dazu führen, dass viel Cruft gespeichert wird. Insbesondere memberlist.php und viewtopic.php, in denen p = angegeben ist, können Tausende von Dateien erstellen!

Aufgrund dieses Fehlers in wget http://savannah.gnu.org/bugs/?20808 wird immer noch eine erstaunliche Anzahl dieser unbrauchbaren Dateien heruntergeladen - vor allem, wenn sie gelöscht werden. Das wird also viel Zeit und Bandbreite brennen.

Im Nachhinein denke ich, dass ein Skript, das ein Wget automatisch zu viewtopic? T = 1 und Viewforum? F = 1 automatisch inkrementiert, besser funktionieren würde. Andrew Russell vor 14 Jahren 1
Um Ihnen eine Vorstellung davon zu geben, inwieweit ein Fehler in wget ein Problem darstellt, wurden etwa 92% der heruntergeladenen HTML-Dateien gelöscht. (Beachten Sie, dass weit weniger Dateien heruntergeladen werden, als wenn Sie eine Spiegelung ohne Ablehnungsliste durchführen.) Beachten Sie außerdem, dass das Ablehnen all dieser Dateien Links auf den resultierenden Seiten praktisch unbrauchbar macht. Sie müssten ein Skript zusammenstellen, um anschließend Links für Sie zu reparieren. Andrew Russell vor 14 Jahren 0
2
Evan

Ich hatte kürzlich ein ähnliches Problem mit einer phpBB-Site, die häufig vor dem Aussterben stand (leider, weil der Administrator verstorben ist). Mit über 7 Jahren Beiträgen im Forum wollte ich es nicht verschwinden sehen. Deshalb schrieb ich ein Perl-Skript, um alle Themen zu bearbeiten und als flache HTML-Dateien auf der Festplatte zu speichern. Falls jemand anderes ein ähnliches Problem hat, ist das Skript hier verfügbar:

https://gist.github.com/2030469

Es ist auf einen Regex angewiesen, um die Anzahl der Beiträge in einem Thema zu extrahieren (zum Paginieren erforderlich), aber im Allgemeinen sollte dies funktionieren. Abhängig von Ihrem phpBB-Design müssen einige der Ausdrücke möglicherweise angepasst werden.

1
Phoshi

Versuchen Sie eine Kombination von Wget-Flags wie:

wget -m -k www.example.org/phpbb 

Dabei steht -m für mirror und -k für "convert links". Sie können auch -p hinzufügen, um Bilder herunterzuladen, da ich mich nicht erinnern kann, ob -m dies tut.

Darf ich meinen Benutzernamen und mein Passwort oder einen Cookie irgendwie angeben? Das, was mich am meisten für das Backup interessiert, ist das, was nur aus Annon-Anmeldungen besteht. user28163 vor 14 Jahren 0
Ja natürlich. wget hat ein Argument --load-cookies, das anscheinend einen Dateipfad erfordert, aber ich habe keine Ahnung, wie es funktioniert! Phoshi vor 14 Jahren 0
@ user28163; http://www.gnu.org/software/wget/manual/html_node/HTTP-Options.html enthält einen Abschnitt über --load-cookies, der es besser erklärt als ich könnte. Klingt, als ob Sie das vielleicht schaffen könnten! :) Phoshi vor 14 Jahren 0
0
Tilo

Hier einige Informationen zu @ Andrew-Russell

immer noch viel Lärm, aber ein Anfang, wenn Sie sich anmelden müssen.

Dieses Projekt sieht vielversprechend aus, hat aber für mich nicht ganz funktioniert: https://github.com/lairdshaw/fups

Beispiel mit Login:

PHPBB_URL=http://www.someserver.com/phpbb USER=MyUser PASS=MyPass  wget --save-cookies=./session-cookies-$USER $PHPBB_URL/ucp.php?mode=login -O - 1> /dev/null 2> /dev/null  SID=`cat ./session-cookies-$USER | grep _sid | cut -d$'\011' -f7`  echo "Login $USER --> $PHPBB_URL SID=$SID"  wget --save-cookies=./session-cookies-$USER \ --post-data="username=$USER&password=$PASS&redirect=index.php&sid=$SID&login=Login" \ $PHPBB_URL/ucp.php?mode=login --referer="$PHPBB_URL/ucp.php?mode=login" \ -O - 1> /dev/null 2> /dev/null  wget --load-cookies ./session-cookies-$USER -k -m -E -p -np -R memberlist.php*,faq.php*,viewtopic.php*p=*,posting.php*,search.php*,ucp.php*,viewonline.php*,*sid*,*view=print*,*start=0* $PHPBB_URL/viewtopic.php?t=27704  ######## loop thru topics see below(but above should get most with the options.  #wget --load-cookies ./session-cookies-$USER -k -m -E -p -np -R $PHPBB_URL/viewtopic.php?t= 
-1
Sakamoto Kazuma

HTTrack ist ein Tool, das Ihnen helfen kann. Ich bin mir nicht sicher, ob es in Foren funktionieren wird.

Natürlich tut es das. user598527 vor 7 Jahren 0