如何使用 wget 下载包含受密码保护部分的 phpbb 论坛?

如何使用 wget 下载包含受密码保护部分的 phpbb 论坛?

我想在我管理的论坛永久关闭之前下载其中的内容。论坛上有一些有用的信息我想自己保存,我不想将数据导出到其他网络服务器,我只想要页面。请注意,我是论坛的用户,不是管理员。现在,我谷歌了一下,发现用 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执行命令后,我仍然只得到公开可见的部分。

有什么建议可以使这个工作成功吗?

答案1

您可能需要为会话设置 cookie,因为许多网站都使用 cookie 来实现登录和注销功能。

“--load-cookies”选项可能会对您有所帮助。

答案2

请参阅我的回答: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={1..29700}

相关内容