7 votes

Comment puis-je télécharger un forum phpbb entier (actif) ?

L'un des forums que je fréquente (et auquel j'ai ajouté BEAUCOUP de contenu de qualité) semble avoir des problèmes avec son serveur. Je n'ai pas confiance en leur capacité à résoudre les problèmes qu'ils rencontrent et en parlant avec l'un des administrateurs, il a mentionné qu'ils ne sauvegardent pas les données.

Comme solution de repli au cas où quelque chose se passerait mal, je veux télécharger l'ensemble du forum. Je suis conscient que je ne peux pas télécharger la base de données ou les fichiers PHP etc... Je veux juste faire une copie de l'ensemble du forum que l'on peut parcourir localement.

Cela signifie que je pourrais (quand j'en aurai le temps) transférer les messages sur le nouveau site s'ils devaient repartir de zéro (volontairement ou non).

Existe-t-il des outils qui permettent cela ?

Remarque : il est évidemment très important que je puisse le consulter localement... ce qui serait très difficile si chacun des liens pointe toujours vers ' http://www.thesite.com/forum/specific_page.php plutôt que '/forum/specific_page.php'.

8voto

user30268 Points 111

Je le fais en ce moment même. Voici la commande que j'utilise :

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/

Je voulais supprimer ces fichus identifiants de session (sid=blahblahblah). Ils semblent être ajoutés automatiquement par la page d'index, puis s'attachent à tous les liens à la manière d'un virus. Sauf un, caché quelque part, qui renvoie à un simple index.php qui continue sans paramètre sid=. (Il y a peut-être un moyen de forcer le wget récursif à démarrer à partir de index.php - je ne sais pas).

J'ai également exclu certaines autres pages qui conduisent à l'enregistrement d'un grand nombre d'informations. En particulier memberlist.php et viewtopic.php où p= est spécifié peuvent créer des milliers de fichiers !

En raison de ce bogue dans wget http://savannah.gnu.org/bugs/?20808 il téléchargera encore un nombre incroyable de ces fichiers inutiles - notamment ceux de viewtopic.php?p= - avant de les supprimer tout simplement. Cela va donc consommer beaucoup de temps et de bande passante.

3voto

Evan Points 53

J'ai récemment été confronté à un problème similaire avec un site phpBB que je fréquente et qui est en voie d'extinction (malheureusement, en raison du décès de l'administrateur). Avec plus de 7 ans de messages sur le forum, je ne voulais pas le voir disparaître, alors j'ai écrit un script en perl pour parcourir tous les sujets et les enregistrer sur le disque sous forme de fichiers HTML plats. Au cas où quelqu'un d'autre serait confronté à un problème similaire, le script est disponible ici :

https://gist.github.com/2030469

Il s'appuie sur une expression rationnelle pour extraire le nombre de messages dans un sujet (nécessaire pour la pagination), mais à part cela, il devrait généralement fonctionner. Certaines des expressions rationnelles peuvent nécessiter une adaptation en fonction de votre thème phpBB.

1voto

Krish Points 111

Essayez une combinaison de drapeaux wget comme :

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

Où -m est un miroir, et -k est "convertir les liens". Vous pouvez également ajouter -p, pour télécharger des images, car je ne me souviens pas si -m le fait.

0voto

Tilo Points 201

Voici quelques informations supplémentaires pour @andrew-russell

Toujours beaucoup de bruit mais un début si vous avez besoin de vous connecter.

Ce projet semble prometteur mais n'a pas vraiment fonctionné pour moi : https://github.com/lairdshaw/fups

Exemple avec 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..29700}

-1voto

Nij Points 669

HTTrack est un outil qui pourrait vous aider. Je ne suis pas sûr qu'il fonctionne sur les forums.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X