web-dev-qa-db-ja.com

パスワードで保護されたセクションを含むwgetを使用してphpbbフォーラムをダウンロードするにはどうすればよいですか?

完全に終了する前に、モデレートするフォーラムをダウンロードしたいと思います。自分用に保存したい有用な情報がいくつかあり、データを別のWebサーバーにエクスポートしたくないので、ページが必要です。念のために言っておきますが、私はフォーラムのユーザーであり、管理者ではありません。今、私はこれをグーグルで検索し、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ファイルcookies.txtコマンドに追加しますが、それでも公開されているセクションしか取得できません。

これを機能させるための提案はありますか?

4
Rocky84

多くのWebサイトはログインおよびログアウト機能を機能させるためにCookieを使用しているため、セッションにCookieを設定する必要がある場合があります。

「--load-cookies」オプションはここで役立つかもしれません。

1

ここで私の答えを参照してください: https://superuser.com/a/1371654/2160

最初に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={1..29700}
0
Tilo