我经常访问的一个论坛(我也添加了很多优质内容)似乎出现了服务器问题。我对他们解决所遇到的问题的能力没有信心,在与其中一位管理员交谈时,他提到他们没有备份数据。
为了以防万一出现严重错误,我想下载整个论坛。我知道我无法下载数据库或 PHP 文件等...我只想制作整个论坛的本地可浏览副本。
这意味着我可以(当我有时间时)将帖子转移到新网站,如果它们是全新的(有意或无意)。
有没有什么工具可以实现这一点?
附注:显然,我可以在本地浏览它,这非常重要……如果每个链接仍然指向“http://www.thesite.com/forum/specific_page.php' 而不是 '/forum/specific_page.php'。
答案1
我现在正在做这件事。这是我使用的命令:
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/
我想删除那些讨厌的会话 ID 内容 (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 主题进行调整。
答案3
尝试一些 wget 标志的组合,例如:
wget -m -k www.example.org/phpbb
其中 -m 是镜像,-k 是“转换链接”。您可能还希望添加 -p 来下载图像,因为我不记得 -m 是否有这个功能。
答案4
HTTrack 是一款可能对您有帮助的工具。但我不确定它是否适用于论坛。