凛冬的寒风带来春晓的梦想
  • [原创]DeviantART相册图片批量获取及下载,测试版 - []

    2009-02-20



    搜刮CGTalk告一段落后决定将本人邪恶的魔爪儿伸向 www.deviantart.com ,欲善其事先利其器,写了点脚本批量取得相册大图,省得挨张点开另存了。

    本页用来获取DeviantART相册批量外链地址(按专辑)。输出url链接以及大图预览。

    --2009.03.14 增加了缩略图预览,简单补充一些文字说明
    --2009.08.16 整合进入
    常用网络相册批量外链下载,在线使用,本文停止更新

    批量获取DeviantART艺术家专辑图片地址
    使用方法:
    在其专辑界面查看其源代码,粘到下面文本框中,点击"批量分析图片链接地址"。
    示例:来自哥伦比亚的艺术家decrepitude的个人专辑页面(或使用你想要的相册页面)。

    第一个预览框给出图片url链接,用做结合迅雷等工具批量下载;
    第二个预览框给出缩略图预览,简单查看一下是否正确分析了图片链接,用熟了这个也可关掉;
    第三个预览框直接载入大图,直接确认是否分析到原图地址,也可以批量存图时用,如果本来就打算用下载软件了,那可以禁用这个框,否则要费双倍流量。

    相册如果分多页,则稍复杂一些,连带其它细节均放在最后说明(跳转到本页尾部)

    附:IE浏览器看源代码的方法(-_-!):
    在想要的页面右键->查看源文件,一般会打开记事本,把里面的内容贴过来即可。

    专辑界面源代码粘到这里


    主要选项:
    生成URL以供批量下载
    收集缩略图预览
    生成大图预览

    清空上面文本框 - 批量分析图片链接地址


    ...
    图片 url 预览...
    ...


    ...
    缩略图预览...
    ...


    ...
    大图预览...
    ...


    其它介绍

    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的特点,以及与大图对应关系应该没有变化。





    评论

  • @alpha
    如果用IE的话,是这样的……
    原因文中已经提到了,
    暂时还想不到完善的解决办法……
  • 试了试,好像只能用于Gallery 第1页,第2页就用不了
  • 工具很不错,非常合用