吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2347|回复: 34
收起左侧

[其他原创] 神奇的书签脚本-下载文档

[复制链接]
mr88fang 发表于 2025-4-19 10:19
本帖最后由 mr88fang 于 2025-4-19 13:06 编辑

目标网站:aHR0cHM6Ly93d3cuZG9jODguY29tLw==

简介

本着有好东西不能偷偷用的原则,分享一个神奇的书签脚本,下载目标网站公开免费的在线文档1:1高清,书签脚本如何使用自行学习。

知识

以下代码可在不刷新页面的情况更新地址栏参数

const url = new URL(window.location.href);
url.searchParams.set('状态', '666');
history.pushState({}, '', url.href);

使用

添加好书签脚本,打开你要下载文档地址,点击一次书签脚本观察地址栏参数变化自动下载。

代码

源码未混淆只是做了压缩

javascript:(async()=>{"use strict";let loading=false;const script=document.createElement("script");script.src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jspdf/2.4.0/jspdf.umd.min.js";script.fetchpriority="high";script.addEventListener("load",(()=>{console.log("外部库加载完成!");loading=true}));document.body.appendChild(script);await new Promise(((resolve,reject)=>{const interval=setInterval((()=>{if(loading){clearInterval(interval);resolve(true)}}),100)}));const CLASS_NAME_LIST="#pageContainer .inner_page";const title=document.title;console.log(title);let timer=null;const jsPDF=jspdf.jsPDF;const doc=new jsPDF({orientation:"l",unit:"px",compress:true,hotfixes:["px_scaling"]});function updateState(params){const url=new URL(window.location.href);url.searchParams.set("状态",params);history.pushState({},"",url.href)}updateState("开始预览");function updateProgress(current,total){let p=current/total*100;let ps=p.toFixed(0)>100?100:p.toFixed(0);console.log("当前进度",ps);let url=new URL(window.location.href);url.searchParams.set("p",ps);history.pushState({},"",url.href)}function addDataPage(data,i,width,height){let dir="p";if(width>height){dir="l"}doc.addPage([width,height],dir);doc.addImage(data,"JPEG",0,0,width,height,i,"FAST");if(doc.internal.pages[1].length===2){doc.deletePage(1)}}function traverseSaveCanvas(){const nodes=document.querySelectorAll(CLASS_NAME_LIST);const len=nodes.length;for(let i=0;i<len;i++){const item=nodes[i];let previousElementSibling=item.previousElementSibling.previousElementSibling;let t=previousElementSibling.innerText;if(t.length!==0){continue}updateProgress(i+1,len);addDataPage(item,i,item.width,item.height)}console.log("处理完成",length);updateState("正在下载");doc.save(`${title}.pdf`,{returnPromise:true}).then((res=>{console.log(res)}))}function isElementInViewport(element){const rect=element.getBoundingClientRect();const windowHeight=window.innerHeight;if(rect.top<=0&&rect.top>=-rect.height){return true}else if(rect.bottom>=0&&rect.bottom<=rect.height){return true}else{return false}}function clearTimer(){if(timer){clearInterval(timer)}}function previewPage(){const nodes=document.querySelectorAll(CLASS_NAME_LIST);const len=nodes.length;let finish=true;for(let i=0;i<len;i++){let node=nodes[i];let previousElementSibling=node.previousElementSibling.previousElementSibling;let fs=node.getAttribute("fs");let t=previousElementSibling.innerText;if(t.length!==0){node.scrollIntoView({behavior:"smooth"});finish=false;updateProgress(i+1,len);break}}if(finish){updateState("开始下载");traverseSaveCanvas();clearTimer()}else{console.log("还没有")}return finish}function continueLoad(){let eb=document.querySelector("#continueButton");if(eb){eb.click()}}timer=setInterval((()=>{continueLoad();let end=previewPage();console.log("定时器")}),500)})();

示例

pE4egxO.jpg

免费评分

参与人数 8吾爱币 +12 热心值 +7 收起 理由
yanglinman + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
苏紫方璇 + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
0jiao0 + 2 + 1 谢谢@Thanks!
wkdxz + 3 + 1 用心讨论,共获提升!
gztf + 1 + 1 谢谢@Thanks!
Dreamguykyle + 1 + 1 用心讨论,共获提升!
策士 + 1 谢谢@Thanks!
B1GYang + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jtjt68 发表于 2025-4-19 18:04
请教度娘:
首先我们添加一个书签,以chrome为例
首先在书签栏添加一个空白网页

然后我们用编辑器新建一个支持js语法的后缀文件,当然大佬可以直接txt手撸
开头必须是javascript 大小写不敏感,后面就是纯js操作了

用是用上了,那个测试网页我咋之下了一页?得先浏览一遍吗

sdieedu 发表于 2025-4-19 11:22
https://www.doc88.com/p-49116197302972.html  测试了一下,开始浏览完所有页面后,状态变成开始下载,但是100多页后黑屏,然后发现文件失败,下载了157M多呢。不是原格式,那本书我有原格式pdf。
sdieedu 发表于 2025-4-19 10:52
菜鸟问一下aHR0cHM6Ly93d3cuZG9jODguY29tLw== 目标网站 ,如何解码?base64?不应该啊
 楼主| mr88fang 发表于 2025-4-19 10:55
sdieedu 发表于 2025-4-19 10:52
菜鸟问一下aHR0cHM6Ly93d3cuZG9jODguY29tLw== 目标网站 ,如何解码?base64?不应该啊

是 base64 啊!可以解码
B1GYang 发表于 2025-4-19 10:56
测试了下,下载速度还挺快的,就是打开文件放大就虚化了,没有扫描的放大后清晰度高,但是影响不大。如果有人能解决下载的文档自动以A4版面显示就完美了
 楼主| mr88fang 发表于 2025-4-19 11:02
B1GYang 发表于 2025-4-19 10:56
测试了下,下载速度还挺快的,就是打开文件放大就虚化了,没有扫描的放大后清晰度高,但是影响不大。如果有 ...

有脚本下载就是A4,你可以自己搜下,这里不能发,我之前发的帖子被仅自己看见了
lyjhyjyes 发表于 2025-4-19 11:07
不太会用呢
 楼主| mr88fang 发表于 2025-4-19 11:40
sdieedu 发表于 2025-4-19 11:22
https://www.doc88.com/p-49116197302972.html  测试了一下,开始浏览完所有页面后,状态变成开始下载,但 ...

这种估计得加个分页下载,太大了
B1GYang 发表于 2025-4-19 11:43
mr88fang 发表于 2025-4-19 11:40
这种估计得加个分页下载,太大了

应该是他浏览器或电脑问题,同样的链接我下载后162M,没有出现黑屏等情况,文件是完整的。
applepv 发表于 2025-4-19 11:54
怎么你们下的大小不一样呐,,我怎么下下来是225.81M,,也是正常的,,Linear Algebra and Its Applications - ,,是这名字,,493页的吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-28 03:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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