正在查看 5 个帖子:1-5 (共 5 个帖子)
  • 作者
    帖子
  • @82686 回复 ⚑举报 

    张飞白
    游客

    众所周知,现在下载故宫名画记的方法,是利用@未曾先生提供的那个书签,将图像界面转换成包含dzi关键信息的字符串

    javascript:document.getElementsByTagName("body").innerHTML = JSON.stringify(viewer.source.Image);

    这个方法是可以实现下载,但仍需手动将获取的关键信息填入dzi文件中,再调用dezoomify-rs下载

    我在研究下载方法时,一直想像着能否通过python请求网页,自动获得包含dzi的关键信息,然后生成dzi文件,再调用dezoomify-rs下载,省动中间手动的步骤。但python以爬静态网页信息为主,而名画记中的dzi信息是包含在js动态生成的“viewer.source.Image”内容中,这点我似乎没有找到特别方便的方法,因为我对于python直接获取js动态加载信息这块还不擅长

    后来倒是通用selenium实现了,以赵昌写生蛱蝶图卷为例,关键代码大概如下:

    from selenium import webdriver

    driver = webdriver.Chrome()

    driver.get('https://minghuaji.dpm.org.cn/paint/appreciate?id=tdt75x11t704sytm35pepovbka2gygdn')

    json = driver.execute_script('return viewer.source.Image')

    这是通用webdriver的execute_script()功能来执行js代码获取结果,但仍需要配合chromedriver工具及chrome来使用,稍显没有那么方便

    近日我看@zhudw兄更新了booget版本,已经包含了故宫博物院及名画记的下载,我简单测试过,也是能够生成dzi文件,但生成dzi文件的方式,似乎不是调用selenium等来获取关键信息的。看过源码,没有怎么看懂

    请教@zhudw兄台,请问您是怎样获取js加载的动态内容的?还请赐教,谢谢!!

    @82694 回复 ⚑举报 

    张飞白
    游客

    多谢,一会我再尝试一下。

    我的理解,你给的书签解析法,是直接获取最终结果,不必理会它的计算过程,我本来也是朝这个方向来搞的。

    现在您给的是正面刚的方法,这个是我没有想过的,太感谢了!!

    @82696 回复 ⚑举报 

    未曾
    管理员

    @张飞白 #82694

    JS那个是用它自己函数去解析(类似自己的钥匙开自己锁)

    解析源码就是配钥匙开锁~~

    我目前能想到的就是这样,或有更好的方法。@zhudw不是开放了源码吗?

    @82697 回复 ⚑举报 

    zhudw
    游客

    @张飞白 #82694

    未曾先生已经给出了方法,我的思路也是一样的。可以参考 github.com/dewei...dpm/mod.go

    顺序是 base64 decoder -> AES( mode=CBC, pad7补全)。

    @82698 回复 ⚑举报 

    未曾
    管理员

    @张飞白 #82694

    另外,名画记的解密key和数字文物库那边不一样

    名画记

    $key = "hQKWqRCPUFjUXv0q";
    $iv = 'SH8csHyhBEnAPtwb';

    数字文物库

    $key = "tNzf3IrAXDCepOVQ";
    $iv = 'nE0d1QQdSy45uBX3';
正在查看 5 个帖子:1-5 (共 5 个帖子)
正在查看 5 个帖子:1-5 (共 5 个帖子)

上传图片

拖拽或点击选择图片(最多五张)

回复至:请教zhudw先生或未曾先生关于故宫名画记关键dzi信息的获取方法
您的信息:



发帖/回帖前,请了解相关版规

0,邮箱地址尽量真实有效,随意填写的可能会被系统误判为垃圾内容。
1,不要开书单。单个帖子尽量发布一种书籍需求。
2,在搜索不到相关主题的情况下,尽量发新帖(发帖标题最好带上书名)。不要在他人帖子中回复某种书籍需要。
3,发帖提问标题尽量简单明了。发帖内容不要太过简略,请对书籍内容、版本或作者作简要说明。
4,出版于1973年以后的资源需求或分享将会被清理删除。