CAUTION:本文要求代码阅读力18+,小白请出门右转看小白版 ( ̄︶ ̄)↗ http://hzx0910.github.io/TopitDownloader/

www.topit.me 非常喜欢的图片网站,自己帐号下面也搜集了很多喜欢的图片,但是想全部下载下来的话却挺麻烦,

有好多图片需要挨个点进去‘查看原图’才能下载到大图。

后来仔细观察了下,topit上的图片主要分为五种级别:STML O

S:缩略方式T:三列缩图 M:两列方式 L:单列方式   O:原图(不过不一定有)。

有两种存储方式:http://*.topitme.com/*s.jpg或http://*.topitme.com/s/*.jpg 不同大小级别只要替换链接中表示大小的字母s即可。

当然你可以把所有O级别的跟L级别的全部下载下来,然后再去手动删除重复的小图,不过这样还是不够方便直接。

根据上面的分析,比较简便的办法是首先获取专辑里面所有图片的链接,然后挨个分析链接:

第一步:把链接中所有表示级别的字符最's.'、'/s'、't.'、'/t'、等全部替换为最高级别'o.'、'/o';

第二步:尝试下载最高级别的链接成功则保存,不成功则把链接替换为L级别下载。

然而第二步的判断大图存在在js里却并不那么好实现,不过幸好html的<img>标签有一个onerror属性,完美的解决这个问题(ง •̀_•́)ง

把第一步的链接全部放到<img>标签里面,第二部大图不存在的话交给onerror处理,代码如下:

/*s 缩略 t 三列 m 两列 l 单列  o 原图(不一定有)*/
function nofind(img, osrc) {img.src = osrc.replace('/o', '/l').replace('o.', 'l.');
}
(function() {/*page_max 加载的最大页码数 可修改为数字 by JerseyHo*//*page_min 加载的最小页码数 可改为其他数 by JerseyHo*/var page_max = $('#page-next').prev().text() * 1 || 1;var page_min = 1;var body = '';var href = location.href.split('?')[0];function getpage(n) {if (n < page_min) {document.body.innerHTML = body;return;}$.get(href + '?p=' + n,function(data) {var str = '';$(data).find('#content img.img').each(function(i, v) {var osrc = ($(this).attr('src').indexOf('blank.gif') >= 0 ? $(this).attr('data-original') : $(this).attr('src'));osrc = osrc.replace('/s', '/o').replace('s.', 'o.').replace('/t', '/o').replace('t.', 'o.').replace('/m', '/o').replace('m.', 'o.').replace('/l', '/o').replace('l.', 'o.');body += "<img onerror='nofind(this,this.src)' src='" + osrc + "' /><br/>\r\n";});getpage(--n);})}getpage(page_max);
})();

在Topit任意页面往浏览器console(按F12)里面输入上面的代码执行,等一会网页切换,图片加载完以后再按Ctrl+S选择保存网页全部就把整个专辑的原图都拿到手了。

想要更方便一点的话在代码前面加上 javascript: 保存为浏览器书签,每次用的话点一下书签就好了。

另外,如果专辑实在太大,浏览器一次还是很难下载全,可以分几次下载,只需要每次修改上面代码里面page_max 和page_min修改为你需要的页码范围就行了

JavaScript 部分代码参考了 http://www.douban.com/group/topic/26040724/ 谢谢谢谢谢谢谢谢!!!!

Topit专辑原图批量下载JavaScript脚本相关推荐

  1. Sahi案例分享:音乐批量下载

    from http://www.infoq.com/cn/articles/sahi-google-music-download 作者沈锐发布于2012年6月13日 领域 运维 & 基础架构, ...

  2. 群里又会python的吗_自从会了Python在群里斗图就没输过,Python批量下载表情包!...

    原标题:自从会了Python在群里斗图就没输过,Python批量下载表情包! 导语 最近图慌,于是随便写了个表情包批量下载的脚本,没什么技术含量,纯娱乐性质. 让我们愉快地开始吧~ 开发工具 Pyth ...

  3. 【linux 上批量下载amazon s3数据】

    linux 上批量下载amazon s3数据 linux 上批量下载amazon s3数据 linux 上批量下载amazon s3数据 最近导师喊我下载amazon s3上的数据传到服务器上,没用过 ...

  4. Python实用案例,Python脚本,Python实现批量下载百度图片

    往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 Python实现每日更换"必应图片"为"桌 ...

  5. 2023年批量下载和改名音频专辑(系列3之selenium-wire方式)

    XIMA多页动态列表中的音频下载seleniumwire 步骤说明: 步骤一:获取xima cookie 步骤二:遍历目录,逐一播放后抓取响应信息 除了系列1之单页,系列2之多页,VIP音频还有动态加 ...

  6. 配合cat.jsp批量下载脚本

    渗透时有时会出现数据库连接出错,但本地有大量导出数据:或数据库中存储的图片等文件保管在本地的情况,这时可能需要批量下载文件.但蚁剑.菜刀乃至冰蝎或一些web shell都缺少有效批量下载的功能,故利用 ...

  7. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件

    使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用m ...

  8. 用python批量下载modis数据的速度怎么样_MODIS数据的简介和下载(五)——应用密钥的Python脚本下载...

    接上文,由于NASA官方弃用了FTP改用HTTPS服务,所以关于MODIS数据的下载方式有所改变.完整系列博客可以参照以下链接.本篇主要接着上一篇没有讲完的应用密钥的脚本下载介绍. 1 官方教程与说明 ...

  9. 利用Python编写脚本批量下载公众号中的音频

    欢迎大家光临我的博客,大家一起交流学习哦 陈京九的博客 首先声明我只是一个小菜鸡,把自己琢磨一些功能的过程发到了这里当做记录,希望大神们轻喷,能给我一些指导就更好啦~ 上一篇博客教大家下载了公众号中的 ...

最新文章

  1. NASA投资有远景技术,有望改变未来人类和机器人的勘探任务
  2. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始
  3. 如何在矩池云上查看cudnn版本
  4. insert sort java_java插入排序 Insert sort实例
  5. 二、【二维码扫描ZXing】
  6. Nginx服务器学习(一)CentOS7系统安装Nginx
  7. Excel导入oracle的几种方法
  8. 零基础如何自学Java?
  9. 关于如何用python下载文件
  10. 将Imagenet2012比赛数据解析为图像
  11. Django作为微信小程序后端实践
  12. angular-6大主流前端框架(一)
  13. ES集群报错:master_not_discovered_exception 503
  14. 数学分析 函数项级数(第13章)
  15. drwxr-xr-x是啥意思
  16. 世界是有限的还是无限的?
  17. com.google.android.material.tabs.TabLayout 选择tab 加粗字体加大
  18. Vert.x实战 异步数据和事件流
  19. MyBatis中大于号以及小于号的表达方式
  20. Java SDK和Java JDK的区别

热门文章

  1. Tailwind Border
  2. mysql中授权主机通配的_什么意思_windows和linux虚拟机配置mysql主从
  3. 用卡尔曼滤波处理工程数据的方法与思考with基于GPS与INS组合导航的滤波模型仿真
  4. Scala 编程题四 继承
  5. 智能门铃中可视对讲的回音消除
  6. 基于ssm快递取件及上门服务微信小程序
  7. 【Android 10 源码】MediaRecorder 录像流程:MediaRecorder 开始录制
  8. URL中文编码与文本中文编码的关系
  9. 初生牛犊:Windows下Anti-sandboxes技术探究
  10. matlab对于图像压缩,Matlab的图像压缩技术