Как я могу скачать форум phpbb с помощью wget, включая защищенные паролем разделы?

1995
Rocky84

Я хочу скачать форум, который я модерирую, пока он не закрылся навсегда. Там есть некоторая полезная информация, которую я хочу сохранить для себя, и я не хочу экспортировать данные на другой веб-сервер, я просто хочу страницы. Имейте в виду, я пользователь форума, а не администратор. Теперь я прогуглил это и обнаружил, что это легко сделать с помощью wget: Как я могу скачать весь (активный) форум phpbb?

Я использовал:

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

Я экспериментировал с этим, но я могу добиться только загрузки общедоступных разделов, а не разделов, для которых вы должны войти. Я пытался добиться этого с помощью плагина Firefox, чтобы создать cookies.txt (пока мой сеанс зарегистрирован на форуме) и добавить в команду файл --load-cookies cookie.txt, но все же я получаю только общедоступные разделы ,

Любые предложения, чтобы сделать эту работу?

4
Вы знаете Python? paradroid 13 лет назад 0
Я предполагаю, что происходит то, что wget следует всем ссылкам на найденных страницах. Если вы начнете с индексной страницы форума, я предполагаю, что она проходит через код сверху вниз. Одна из ссылок на странице индекса - это ссылка «Выйти». Всякий раз, когда он достигает этого, он автоматически выходит из сеанса. Я пытался добавить и исключить для login.php * или что-то в этом роде, но до сих пор я получаю одинаковые результаты. Кто-нибудь знает, как я могу сказать wget исключить любую страницу, которая начинается с `http: // www.example.com / forum / login.php *`? чтобы он не вышел из системы, пока он занят? 13 лет назад 1

2 ответа на вопрос

1
Randolf Richardson

You may need to set up cookies for the session because many web sites use cookies to make the login and logout functions work.

The "--load-cookies" option might help you here.

0
Tilo

см мой ответ здесь: https://superuser.com/a/1371654/216033

Сначала нужно получить SID и использовать его в следующем запросе.

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

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= 

Похожие вопросы