科学文库的另一种下载方法

查看 117|回复 10
作者:Kenny0521   
论坛有很多人发布了科学文库的破解方法了,在这里先膜拜一下那些大佬们
众所周知,科学文库打印限制100页,而且在代码中,图片被脚本分成了6份,但是我在打印图书的时候,发现打印的页面有时会损坏,一定是获取图片失败的征兆,所以我尝试获取那些图片
https://book.sciencereading.cn/shop/book/Booksimple/show.do?id=B6252986009463779E053020B0A0A2867000
比如这本书,点击打印的时候,打开DevTools:
[i]
发现网页在调取很多xhr,随便点开一个,右键->在新标签页中打开,这时神奇的事情发生了,我们获取到了完整的图片:
[i]
(规律:第一张图片是0,第二张是1...依此类推)
最后使用Python合并图片即可,对于清晰度问题,可发现后面的数字是100,改成1000有奇效哦

文库, 图片

guyinqian   


sdieedu 发表于 2022-4-21 11:26
预览其实传来原版PDF了,就是没人分享技术下载而已。。。。

@sdieedu 您好,不知道别人是不是类似方法,反正我自己总算是捣鼓出来了原版PDF的下载方法了
以下为分析过程:
经过抓包分析,阅读PDF的时候图片地址类似于https://wkobwp.sciencereading.cn/asserts/cd4bf6f17b42403fb192ef570a5b111d/image/4/tiles/100/400/2/2?accessToken=accessToken这样,经过修改比较,发现各个参数分别代表:
https://wkobwp.sciencereading.cn/asserts/图书编码ID/image/页码/tiles/分辨率/图片尺寸/纵向第n块/横向第n块?accessToken=accessToken
由是观之,其实服务器返回的只是图片罢了~
因此最笨的方法便是获取每一张图片并合并,其中的分辨率共有50,75,100,125,150,200,400,800,1000九个级别
但是显而易见,这肯定不是下载文档的最优解,于是继续分析
继续抓包,就可以和楼主一样发现打印时返回每一页的图片,
结合页面上的分辨率,和不断尝试,抓取如下图片分析得到:
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/50/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/75/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/100/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/125/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/150/400/2/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/200/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/400/400/1/1?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/800/400/3/3?accessToken=accessToken
https://wkobwp.sciencereading.cn/asserts/837cbe62aaf64504ae48c992dcc5e7cf/image/2/tiles/1000/400/4/3?accessToken=accessToken
【整页图片】
https://wkobwp.sciencereading.cn/asserts/cd4bf6f17b42403fb192ef570a5b111d/image/2/1000?accessToken=accessToken
确实可以获取原PDF,但是需要修改别的参数,您可以自己抓包试一下,应该不难发现
至于为什么知道了方法不在论坛公布,我想是因为论坛人流量太大,一旦公之于众,即使设置较高的权限,官方都会很快修复
Zhili.An   

不错不错 等另外一个大佬给出全文原本下载方法
z80xiaojin   

厉害!学习了
titaz   

厉害了。
guyinqian   

@Kenny0521 有两个问题
一是只能获取部分图片,比较后面的页码就报错,error
https://wkobwp.sciencereading.cn ... ec2ec0/image/21/100
{"error":-1,"status":3}
二是获取到的图片分辨率并不高,比较模糊,而网页预览的PDF是清晰的
Kenny0521
OP
  


guyinqian 发表于 2022-4-20 12:55
@Kenny0521 有两个问题
一是只能获取部分图片,比较后面的页码就报错,error
https://wkobwp.scienceread ...

一,我刚试了一下,不会报错(但是如果跳着访问就会报错,例如100页,101页,102页不会,但如果101页,207页可能会报错)
二,这个方法确实不是获取原文档的方法,但是在科学文库打印的时候会限制打印100页,这个无限制,可一次性访问所有页面并打印(此方法为更改脚本使其不限制打印的简单实现方法)
think137   

太牛了,厉害
zxf3141592654   

受教了,感谢感谢
向往的歌   

能下载百度文库吗?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部