有没有什么简便的方式可以从discuz论坛保存下来几栋楼
某个常去的论坛快不行了,考虑把一些常看的东西备份出来,有没有什么方便的手段。还是只能一页一页保存? diohanmilton 发表于 2020-1-27 16:17右上角有个打印图标 可以输出一个简版的合集
那个一次只能打印一页,而且并不好用。不知道是不是我姿势不对,打印第二页的时候,有时候会出现第一页的内容 成型的轮子好像没有,之前泥潭挂的时候我还去搜过。感觉比较合理的可以试试chrome的capture full screen但是清晰度好像并不高,丢进web archieve可以作为备选,但是像泥潭这种有权限/要求登录的,web archieve就不好用。出来一个登录界面 以前有WEBZIP,不晓得对现在的论坛还兼容不 OfflineExplorer这个程序,可以快捷保存整楼,还可以定义文件类型,打包等等 关键字 整站下载 有现成的爬虫缺点是需要登陆才能看的内容可能看不到 本帖最后由 bbn 于 2020-1-27 19:28 编辑
什么网站,不登录能看帖简单点。离线浏览软件,楼上说的Offline Explorer。需要登录就要cookies,也有这个选项,但是好像只能用IE。
爬虫没用过。
以前Firefox 有ScrapBook等扩展。
我是用自动翻插件加网页截图插件。
当然大批量搞这样效率就太低了。 油猴装自动翻页脚本,加载全部楼层后用浏览器自带的另存页面功能 win8 发表于 2020-1-27 18:34
关键字 整站下载 有现成的爬虫缺点是需要登陆才能看的内容可能看不到
用上面说的OfflineExplorer就可以,自带浏览器登录一下获得cookie 量不大直接翻页脚本+打印为pdf完事
量大的话就楼里几位说的工具 专门写过一个,但是针对性很强,不通用。建议直接截图保存 git上搜搜? 本帖最后由 三葉Mitsuha 于 2020-1-28 22:44 编辑
写过一个JS脚本,每次运行只能爬一个帖子,最多支持999页。
这个脚本是通过调用discuz的api,并把api返回的数据独立保存成一个.json文件(只能保存文本内容,非文本的无能为力了)
(function(THREAD_ID, MAX_PAGE) {
let pageIndex = 0
const downloadContent = function(contentText) {}
const rename = num => num > 99 ? num : num > 9 ? '0' + num : '00' + num
const getJSON = async function() {
++pageIndex;
if (pageIndex > MAX_PAGE) {
console.log('END')
return
}
try {
const xhr = new XMLHttpRequest()
xhr.open('GET', `/2b/api/mobile/index.php?version=4&module=viewthread&tid=${THREAD_ID}&page=${pageIndex}`)
xhr.overrideMimeType('text/plain; utf-8');
xhr.setRequestHeader('Content-type', "text/plain; charset=utf-8")
xhr.onreadystatechange = () => {
if (xhr.readyState !== 4) {
return
}
const blob = new Blob(, {type : 'application/json'})
const anchor = document.createElement('a')
const fileName = `thread_${THREAD_ID}_${rename(pageIndex)}.json`
anchor.download = fileName
anchor.href = window.URL.createObjectURL(blob)
anchor.click()
window.URL.revokeObjectURL(anchor.link)
setTimeout(getJSON, 200)
}
xhr.send()
} catch (err) {
console.error(err)
}
}
getJSON()
})()
使用方法,以chrome为例
0、进入你要爬的discuz的网页
1、打开浏览器开发者工具(f11?)
2、切至console
3、把以上代码粘贴至console,并在最末尾的括号内填写两个数字参数,用英文逗号隔开,之后敲击回车执行代码。
4、第一个参数是帖子id(通过网址可以得到),第二个参数是最大页码数。
5、第一次运行的话,chrome应该会询问你是否要下载多个文件,点击允许即可。
如果实在来不及找别的工具,可以先用这段代码把文本内容全弄下来。
页:
[1]