6

На одном из форумов, которые я часто посещаю (и добавил много качественного контента), похоже, возникают проблемы с их сервером. Я не уверен в их способности разобраться с проблемами, с которыми они сталкиваются, и в разговоре с одним из администраторов, которого он упомянул, что они не поддерживают данные.

Поскольку полное отступление в случае, если что-то идет ужасно неправильно, я хочу загрузить весь форум. Я знаю, что я не могу загрузить БД или файлы PHP и т.д. Я просто хочу сделать локально просматриваемую копию всего форума.

Это означает, что я мог бы (когда у меня будет время) перенести посты на новый сайт, если они будут начинаться заново (специально или нет).

Есть ли инструменты, которые позволили бы это?

Примечание: очевидно, очень важно, чтобы я мог просматривать его локально ... что было бы очень сложно, если бы каждая из ссылок по-прежнему указывала на « http://www.thesite.com/forum/specific_page.php », а не на «/forum» /specific_page.php.

5 ответов5

7

Я делаю это прямо сейчас. Вот команда, которую я использую:

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/

Я хотел избавиться от этих надоедливых сессионных идентификаторов (sid = blahblahblah). Кажется, они автоматически добавляются страницей индекса, а затем прикрепляются ко всем ссылкам вирусоподобным образом. За исключением одного белка где-то в стороне - который ссылается на обычный index.php, который затем продолжается без параметра sid =. (Возможно, есть способ заставить рекурсивный wget запускаться из index.php - я не знаю).

Я также исключил некоторые другие страницы, которые приводят к спасению большого количества хлама. В частности, memberlist.php и viewtopic.php, где указано p =, могут создавать тысячи файлов!

Из-за этой ошибки в wget http://savannah.gnu.org/bugs/?20808 он по-прежнему будет загружать поразительное количество этих бесполезных файлов - особенно viewtopic.php?p = единицы - прежде чем просто удалить их. Так что это сожжет много времени и пропускной способности.

2

Недавно я столкнулся с подобной проблемой на сайте phpBB, с которым я часто сталкиваюсь с неизбежным исчезновением (к сожалению, из-за ухода администратора). Более 7 лет публикаций на форуме я не хотел, чтобы это исчезло, поэтому я написал Perl-скрипт для прохождения всех тем и сохранения их на диск в виде простых HTML-файлов. В случае, если кто-то еще сталкивается с подобной проблемой, скрипт доступен здесь:

https://gist.github.com/2030469

Он опирается на регулярное выражение для извлечения количества постов в теме (необходимо разбить на страницы), но в целом это должно работать. Некоторые из регулярных выражений могут нуждаться в настройке в зависимости от вашей темы phpBB.

1

Попробуйте комбинацию флагов wget, например:

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

Где -m - зеркало, а -k - "конвертировать ссылки". Вы также можете добавить -p для загрузки изображений, так как я не могу вспомнить, делает ли -m это.

0

здесь некоторая добавленная информация к @ andrew-russell

все еще много шума, но начать, если вам нужно войти.

Этот проект выглядит многообещающе, но у меня не получилось: https://github.com/lairdshaw/fups

Пример с логином:

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}
-1

HTTrack - это инструмент, который может вам помочь. Я не уверен, будет ли это работать на форумах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .