2014-09-05
以前在windows下经常去一些壁纸网站,或者是美女的QQ相册,又或者是一个激情美女图片网站下载图片,经常需要点击右键然后“另存为”,要是遇见经典套图,这种重复的操作肯定会让你失去下载的动力。后来用了Firefox有个插件好像是DownloadThemAll(记得不清除了,反正就是批量下载网页链接的,可以筛选格式下载图片),结合迅雷使用可以极大的提高图片下载的效率(但是如果页面小图片过多,下完之后也需要很长时间来筛选删除废文件)。现在用了ubuntu,没有windows和迅雷,也不用firefox很多年了。我们如何来批量下载网页中的美图?在chrome下我一直想找这样一款插件,可惜只找到IMG inspector这个插件,这个插件的工作方式是定义一个基准URL,利用占位符,定义好的步长和循环范围来重新生成链接并预览。不得不说这样的功能是在太弱了,即使是套图的URL也不一定是有规律可循的,所以这种方法并不可取也不实用。
于是后来琢磨着学学Chrome插件开发,自己来做一个 可惜一直没有什么动力。而且我也不清楚chrome插件能不能解决图片下载的问题:是调用客户端下载软件还是调用原生浏览器下载,而且这样一来,还得好好学习chrome的API的一些高级方法,开发成本顿增。遂放弃之。于是转换思路继续琢磨。然后把几个难点问题一一分拆开来分析(环境:UBUNTU+CHROME/FIREFOX):
1)如何获取当前页面的图片地址?
这个最简单的莫过于在chrome的控制台或者firebug中执行脚本程序了,我也想过利用网页爬虫工具比如SimpleHtmlDom这个强大的开源框架(如果你熟悉jquery这个框架让你在服务器端使用jquery获取标签,十分方便),不过这样可能执行的效率上差了一截。复杂性也增加了一些。
2)如何确定当前页面的图片大小是否符合我的“胃口”?
这个问题得分两种情况考虑:网页图片一般分为缩略图和原图。缩略图一般都附带原图链接。也就是用a标签包裹img标签,我们需要获取a标签的href值而不是img标签的src值;原图一般只是一个img标签,这样你可以利用Image对象的width和height来筛选这些图片。对于缩略图筛选可以new一个Image对象设置src的值以后对其高度和宽度进行筛选。不过对于缩略图我一般不筛选,这样的图片一般都是很大的,相反你最可能要筛选的是a标签里面的img对象,因为很多logo和button的图片都是链接包裹的小图片。
3)如何下载图片?
上面两步都是使用控制台的脚本程序来完成的,整个代码不超过10行(包含jquery相机加载的代码)。最后你可以不废吹灰之力得到当前页面筛选之后的图片的地址。可惜就在这一步了,得到了地址没有用,真正废操作的步骤在如何一次性的把这些图片下载到本地的机器。如果我会chrome插件开发,知道chrome如何调用系统的方法(其实我也不确定chrome是否可以,如果浏览器的安全限制足够严格那么这肯定是行不通的),然后熟悉下wget这个强悍无比的下载命令。这就迎刃而解了。遗憾的是,前两个我都不熟悉,不过没关系天无绝人之路,条条大道通罗马,一定会有另外一种方法的。
4)飞越控制台Console
现在我们的思路被卡在chrome的控制台里了,空有大把图片链接却不知道怎么下载他们(其实也只是当前窗口的图片链接)。对于chrome插件开发我始终抱有一丝幻想,可惜学习动力实在没有,而且自己也始终质疑chrome这么安全严格的浏览器会允许js与客户端交互吗?
于是我开始退步思考问题了,不下载文件,直接把这些文件存储在本地的任何一个我能日后读取的地方就行。于是思路延续到html5 的本地存储localStorage和本地数据库,也考虑了Google Gears的本地数据库,后来发现要么搞得过于复杂,要么行不通。慢慢的思路开始朝着一个简单的方向漂移--jQuery,没错就是他--$.getJSON()。如果能够跨域将图片地址发到本地的一个网站然后在后台下载不就行了吗?于是马上用Code Igniter制作了一个网站:只在控制器里面加入了一个只有一个方法的php的控制器类文件,代码仍然不超过10行。代码的作用只是将所有的图片链接换行写入一个文本文件(urls.txt)。
5) 无敌下载器
到这快要结束了,也许有人问我,你这不还是没有实现下载图片吗?嘿嘿,nb人物要登场了:wget -i -b urls.txt 。在终端里面进入网站目录,执行该命令,自动后台下载文本文件里面的每一行的图片地址。
PS:前几天对这个命令不熟悉,拿一H网做实验,误用了参数在后台默默的下载了1.1G的黄图,后来发现了强行kill了该进程。总之这个命令下载网站内容那是强悍到不行。 如果你用linux,这个命令很邪恶,想干坏事到了个位哦!
6) 能不
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
常用dos命令及语法
09-27
PHP中include和require区别之我见
2014-09-05
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
2017-04-12
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
球球大作战汉化版下载v19.7.1 安卓版
其它手游 170.54MB
下载
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游 34.82MB
下载
葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游 34.82MB
下载
葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游 34.82MB
下载
葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游 34.82MB
下载
像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游 206.87MB
下载
葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游 34.82MB
下载
末日餐厅安卓版下载v1.35安卓版
其它手游 73.98MB
下载葫芦侠十楼免费破解版下载v4.4.0.6安卓版
下载
葫芦侠8楼最新破解版下载v4.4.0.6安卓版
下载
猫娘乐园世界连结正版下载v1.9.1 安卓版
下载
像素漫斗全员下载v1.00安卓版
下载
葫芦侠8楼手机版下载v4.4.0.6安卓版
下载
末日餐厅正版官网入口下载v1.35安卓版
下载
我的汉克狗正版下载v26.4.1.48473 安卓版
下载
像素漫斗u鼬神最新版本下载v1.00安卓版
下载