
搜刮CGTalk告一段落后决定将本人邪恶的魔爪儿伸向 www.deviantart.com ,欲善其事先利其器,写了点脚本批量取得相册大图,省得挨张点开另存了。
本页用来获取DeviantART相册批量外链地址(按专辑)。输出url链接以及大图预览。
--2009.03.14 增加了缩略图预览,简单补充一些文字说明
--2009.08.16 整合进入 常用网络相册批量外链下载,在线使用,本文停止更新
其它介绍
DeviantART中能应用这个脚本的页面:
主要是收集每个艺术家的"Gallery"页面时用,但只要页面中出现了缩略图,都可以右键源码将之分析出来,比如DA首页或是艺术家的"Profile"页面也可以分析到。
原理主要是在源码中取得缩略图的url,再根据一定规律映射为大图url。初步测试,可以获取页面中缩略图对应的所有大图,但DA网站本人非常不熟,可能有不少特殊情况没考虑到,以后慢慢调整。
DeviantART相册分页时的情况:
目标专辑仅一页(或分多页,但目前处在第一页)时测试没啥问题,但如果某位艺术家比较高产,其专辑分了十来页,你就会发现从第二页起右键源码的分析结果和第一页都是相同的。。。
本人初学,原因尚不清楚,大概从第二页起都是用Ajax调入的,这部分不会在"查看源码"中显示。
分情况说一下解决方法。。
如果你是firefox用户,那这事好办了,该浏览器中框选部分页面后右键有"查看部分代码"功能,框住缩略图然后右键,粘贴这里的代码,可以顺利取得相册后几页的图片。(此功能与查看整页源码不同,显示的是当前页面状态,而非从服务器请求到的代码,因此可以看到被Ajax操作过的部分。)同时这个功能还有个方便之处就是,假如你只看中了某几张图片,框选之,分析到的图片也仅对应它们,省得把整个页面的图都载入进来了。
如果你是IE用户,,,呃,好吧,至少专辑第一页还是可以看到的,而不少人作品列表都只有一页。也可以搜一个IE插件 Instant Source 装上,这是个高级的代码显示工具,可以查看当前状态页面或部分页面源码,实现与firefox相同的功能。
DeviantART图片存储的一点规律:
缩略图的服务器地址是 thxx.deviantart.com ,其中xx为两位数字,
原始图的服务器地址是 fcxx.deviantart.com ,同样其中xx为两位数字,
一张图片至少有十个相同的备份,将xx中的十位数字从 0 替换到 9 都可以打开同一张图。
比如 http://fc31.deviantart.com/fs36/f/2008/280/8/9/Anabantha_by_DElevit.jpg 如果存在,
那么
http://fc01.deviantart.com/fs36/f/2008/280/8/9/Anabantha_by_DElevit.jpg
http://fc11.deviantart.com/fs36/f/2008/280/8/9/Anabantha_by_DElevit.jpg
。。。
。。。
http://fc91.deviantart.com/fs36/f/2008/280/8/9/Anabantha_by_DElevit.jpg
都是有的,同时如果变换个位数字,也有一定可能链到这张图。
除服务器地址不同以外,缩略图url中还多一段 "/150" ,其它暂时认为没什么不同。
专辑页面中,第一页的图片url是藏在javascript里面的,形如
<img width=\"140\" height=\"150\" src=\"http:\/\/th01.deviantart.com\/fs36\/150\/f\/2008\/280\/8\/9\/Anabantha_by_DElevit.jpg\"\/>
从第二页开始的图片是Ajax调入的,但缩略图url的特点,以及与大图对应关系应该没有变化。
评论
如果用IE的话,是这样的……
原因文中已经提到了,
暂时还想不到完善的解决办法……