故宫博物院的藏品图,防爬 老牛哔了,切得七零八落

2019-07-23 16:15:57 +08:00
 Mavious

有几个藏品美的不行,想下载原图看。 抓包看了下,特么的切成尺寸 200 多的方块碎片,7_5.jpg ,4_10.jpg 等等等等

其实要爬也容易,找规律批量 down 碎片下来拼。

可是我并不想爬啊,下载几张高清晰藏品图欣赏欣赏就行了,费这老牛鼻子的功夫。。。。 恼火。

都是公版古董了,还搞得七零八落,难不成公版还怕人山寨。

要下的藏品是这个

www。dpm。org。cn/collection/jewelry/231382.html

3173 次点击
所在节点    问与答
22 条回复
yamedie
2019-07-23 16:19:25 +08:00
Kirscheis
2019-07-23 16:19:28 +08:00
虚拟屏幕截图大法可破
Mavious
2019-07-23 16:19:58 +08:00
@yamedie 看放大图,有更大的呢。不知道有多大,反正比 1024 大一点。
nolo
2019-07-23 16:23:30 +08:00
@Kirscheis 有水印哈哈
Mavious
2019-07-23 16:24:56 +08:00
我以为只是为了节省流量才切碎的
结果看到这个藏品不让唤起 F12,就知道是故意这么搞的了
digicol。dpm。org。cn/cultural/detail?id=ce90d95c05aa41bc83477df2e07a3fd6

当然要强制唤起也容易,先 F12 再开链接嘛。。。。要么上 fiddler
当然这个藏品也是切碎的了。

然后找了个现成轮子,但是作者什么注释都没有,看得一头雾水。。
github。com/EternalZZX/dpm-download/blob/master/download.py
Mavious
2019-07-23 16:27:25 +08:00
@nolo 你抓包看一下就明白了,水印是一张单独的透明底 png,直接用 ublock 毙掉就行了。
但是大图是不成的了,只有人工拼了。要么暴力截图。我屏幕 19 寸,暴力截图效果也不好。而且我想要原图。。。。
dodo2012
2019-07-23 16:31:42 +08:00
这切图的切的,是为了加载么?
yamedie
2019-07-23 16:33:00 +08:00
打开控制台
var c = document.querySelector('canvas');
c.toDataURL();
得到图片的 base64 串
但有一个问题是: 超出屏幕可见区域的部分画面不显示, 谁再想想办法, 感觉是用不着拼接的
Mavious
2019-07-23 16:43:33 +08:00
更新一下,看到一个教程了,按图索骥,原图尺寸
<Size Width="4707" Height="3713" />

教程采用的方法是暴力下载全部碎片,再拼接。。。

zhuanlan。zhihu。com/p/4412 [不是 QQ 号你干嘛不让我发呢] 1393

感谢 8 楼,我还在搜索方案。
故宫这么有名,说不定也有人遇到了和我一样的困难。。。
silencefent
2019-07-23 16:59:49 +08:00
openseadragon.github.io
不是反爬,是用了这个轮子,点开图片后的大图类似地图异步加载图块
找原图要研究这个轮子把原图位置默认放在那个路径下
NotNil1
2019-07-23 17:25:15 +08:00
@silencefent 我从网上看,这个轮子是可以不放原图的,原图切好后放到这个网站目录下就可以使用,所以可能,下载不到原图。一个简单的例子 https://www.cnblogs.com/yingjiehit/p/4362377.html。
bibizhang
2019-07-23 17:30:13 +08:00
10 楼说的对,高清的大图都得这么搞。
NotNil1
2019-07-23 17:36:31 +08:00
@Mavious 我试了 4 楼的 py 脚本,可以下载,命令就是

python download.py https://en.dpm.org.cn/dyx.html?path=/tilegenerator/dest/files/image/8831/2011/3479/img0007.xml

会有一个缩略图,和一个文件夹,文件夹中是切割好的图片,按照矩阵拼接起来就好了
learnshare
2019-07-23 17:40:19 +08:00
瓦片图,地图也都是这么处理的,因为没法一次加载所有数据
Mavious
2019-07-23 17:43:09 +08:00
@ljtletters 谢谢,我是 py3.6,运行了一下发现没有 pil 模块,回去装上模块再试
NotNil1
2019-07-23 17:47:40 +08:00
@Mavious
我用的 python2 没问题。
我发现那个不是缩略图就是合并好的图,merge_pic 方法就是合并图片的方法。
合并后的图只有几百 K 大,所以第一次看结果给我造成了误解。
LZSZ
2019-07-23 17:52:22 +08:00
这些文物要是能 360 度看就好了
Mavious
2019-07-23 21:22:41 +08:00
@ljtletters

折腾了一下,模块装好了,SSL 证书报错,摆渡了一下,加了个 verify=False 跳过了。然后就跑起来了。
很不错,如你所说,有碎片也有( 285 个碎片,1.28MB ),合成图也有( 1MB )。
xml 文件里说是 4707x3713,合成之后是 4743x3741,基本一致,在找不到原图的情况下……已经非常好了。
so goooooooooood
圆满解决。开心了卷走了七八个藏品图。
谢谢你。

--------------

那个轮子……我技术很差,基本没看懂原图搁哪儿了=_=
xmoiduts
2019-07-23 21:56:27 +08:00
想起了我爬 overviewer minecraft 地图瓦片的那段日子,要拼接 /比对差异,竟然用 pillow 一个库就撸出来了。
php01
2019-07-24 09:32:54 +08:00
谷歌文化学院的图片也是瓦片图,弄了很久,放弃了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX