找回密码
 立即注册
搜索
查看: 2031|回复: 16

[网络] 有没有什么简便的方式可以从discuz论坛保存下来几栋楼

[复制链接]
     
发表于 2020-1-27 16:13 | 显示全部楼层 |阅读模式
某个常去的论坛快不行了,考虑把一些常看的东西备份出来,有没有什么方便的手段。还是只能一页一页保存?
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-1-27 16:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2020-1-27 16:45 来自手机 | 显示全部楼层
diohanmilton 发表于 2020-1-27 16:17
右上角有个打印图标 可以输出一个简版的合集

那个一次只能打印一页,而且并不好用。不知道是不是我姿势不对,打印第二页的时候,有时候会出现第一页的内容
回复

使用道具 举报

     
发表于 2020-1-27 16:47 来自手机 | 显示全部楼层
成型的轮子好像没有,之前泥潭挂的时候我还去搜过。感觉比较合理的可以试试chrome的capture full screen但是清晰度好像并不高,丢进web archieve可以作为备选,但是像泥潭这种有权限/要求登录的,web archieve就不好用。出来一个登录界面
回复

使用道具 举报

     
发表于 2020-1-27 17:02 | 显示全部楼层
以前有WEBZIP,不晓得对现在的论坛还兼容不
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-1-27 17:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2020-1-27 17:56 | 显示全部楼层
OfflineExplorer这个程序,可以快捷保存整楼,还可以定义文件类型,打包等等
回复

使用道具 举报

     
发表于 2020-1-27 18:34 来自手机 | 显示全部楼层
关键字 整站下载 有现成的爬虫  缺点是需要登陆才能看的内容可能看不到
回复

使用道具 举报

发表于 2020-1-27 19:12 来自手机 | 显示全部楼层
本帖最后由 bbn 于 2020-1-27 19:28 编辑

什么网站,不登录能看帖简单点。离线浏览软件,楼上说的Offline Explorer。需要登录就要cookies,也有这个选项,但是好像只能用IE。
爬虫没用过。

以前Firefox 有ScrapBook等扩展。
回复

使用道具 举报

发表于 2020-1-27 19:13 | 显示全部楼层
我是用自动翻插件加网页截图插件。
当然大批量搞这样效率就太低了。
回复

使用道具 举报

     
发表于 2020-1-27 19:14 | 显示全部楼层
油猴装自动翻页脚本,加载全部楼层后用浏览器自带的另存页面功能
回复

使用道具 举报

发表于 2020-1-27 20:32 来自手机 | 显示全部楼层
win8 发表于 2020-1-27 18:34
关键字 整站下载 有现成的爬虫  缺点是需要登陆才能看的内容可能看不到

用上面说的OfflineExplorer就可以,自带浏览器登录一下获得cookie
回复

使用道具 举报

     
发表于 2020-1-27 22:04 | 显示全部楼层
量不大直接翻页脚本+打印为pdf完事
量大的话就楼里几位说的工具
回复

使用道具 举报

     
发表于 2020-1-27 22:49 来自手机 | 显示全部楼层
专门写过一个,但是针对性很强,不通用。建议直接截图保存
回复

使用道具 举报

     
发表于 2020-1-28 06:19 | 显示全部楼层
git上搜搜?
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-1-28 08:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2020-1-28 22:43 | 显示全部楼层
本帖最后由 三葉Mitsuha 于 2020-1-28 22:44 编辑

写过一个JS脚本,每次运行只能爬一个帖子,最多支持999页。
这个脚本是通过调用discuz的api,并把api返回的数据独立保存成一个.json文件(只能保存文本内容,非文本的无能为力了)

  1. (function(THREAD_ID, MAX_PAGE) {
  2.   let pageIndex = 0

  3.   const downloadContent = function(contentText) {}
  4.   const rename = num => num > 99 ? num : num > 9 ? '0' + num : '00' + num

  5.   const getJSON = async function() {
  6.     ++pageIndex;

  7.     if (pageIndex > MAX_PAGE) {
  8.       console.log('END')
  9.       return
  10.     }

  11.     try {
  12.       const xhr = new XMLHttpRequest()
  13.       xhr.open('GET', `/2b/api/mobile/index.php?version=4&module=viewthread&tid=${THREAD_ID}&page=${pageIndex}`)
  14.       xhr.overrideMimeType('text/plain; utf-8');
  15.       xhr.setRequestHeader('Content-type', "text/plain; charset=utf-8")
  16.       xhr.onreadystatechange = () => {
  17.         if (xhr.readyState !== 4) {
  18.           return
  19.         }

  20.         const blob = new Blob([JSON.stringify(JSON.parse(xhr.responseText))], {type : 'application/json'})

  21.         const anchor = document.createElement('a')
  22.         const fileName = `thread_${THREAD_ID}_${rename(pageIndex)}.json`
  23.         anchor.download = fileName
  24.         anchor.href = window.URL.createObjectURL(blob)
  25.         anchor.click()
  26.         window.URL.revokeObjectURL(anchor.link)
  27.         setTimeout(getJSON, 200)
  28.       }
  29.       xhr.send()
  30.     } catch (err) {
  31.       console.error(err)
  32.     }
  33.   }

  34.   getJSON()
  35. })()
复制代码


使用方法,以chrome为例

0、进入你要爬的discuz的网页
1、打开浏览器开发者工具(f11?)
2、切至console
3、把以上代码粘贴至console,并在最末尾的括号内填写两个数字参数,用英文逗号隔开,之后敲击回车执行代码。
4、第一个参数是帖子id(通过网址可以得到),第二个参数是最大页码数。
5、第一次运行的话,chrome应该会询问你是否要下载多个文件,点击允许即可。

如果实在来不及找别的工具,可以先用这段代码把文本内容全弄下来。

评分

参与人数 2战斗力 +3 收起 理由
Montana + 1 感谢
若荼泱 + 2 好评加鹅

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-14 10:35 , Processed in 0.047374 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表