获取网页内的图片地址 | 打包下载图片
最近开发了一个在线的采集工具,可以根据URL来获取当前页面里的图片信息,比如说图片地址,图片标签里的属性,以及通过打包(zip)的形式下载请求页面中获取到的图片。有兴趣的朋友可以查看一下下面的DEMO页面,来进行采集图片:
http://www.ityizhan.com/demo/download-image/
这个DEMO页面只是实现了最基本的两个部分:采集地址和打包下载。目前尚在测试阶段,还在进行的更新,希望大家发现问题能及时反馈,成为大家采集图片的方便工具。
根据不断的测试,以后还可能增加的新功能有,自动调整图片的大小,设置打包图片的名称规则,合并和分解图片。。。。反正想添加的功能挺多的,有什么好的建议也希望大家能留言。
下面说一下这个工具现有功能的实现方法:
1. 获取地址
这个功能最主要的就是用正则表达式来匹配页面源码里的图片地址了,这里用到得正则表达式是:
/<img.*src="(.*)"\\s*.*>/iU
首页通过PHP自带的读取文件函数来获得请求页面的html代码,然后用正则表达式来匹配里面的src地址,这里有两个注意点:
- file_get_content 只能获取到静态的页面内容,也就是说如果你在页面里看到的是图片是通过Javascript来展示的,通过这个工具是获取不到图片信息的
- 有的网站对file_get_content 这个函数做了些限制,如果不是通过浏览器打开的网页,服务器是拒绝请求的,这个时候我们就需要给php 程序添加一个配置信息,让采集的程序能够模拟一个留言器的UA(user agent),具体的做法可以通过下面的代码来实现:
//现在模拟的是一个Window 环境下的浏览器
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');
通过以上两点的处理,获取网页源码就没有问题了,唯一要做的就是用正则表达式对图片地址的匹配。
2. 打包下载图片
这个功能没有什么要说,网上有很多开源的代码,可以提供打包的功能,你唯一要做的就是把页面获取到的图片信息,用php 的函数读出图片,并且把它添加到压缩包里。这个功能会在日后代码开源的时候一起公布出来。
这个在线采集的小工具可以帮助一些快速建站的站长,很快的下载同一个页面里的所有的图片信息,来补充自己的站点的内容。其实现在有很多开源的项目已 经有了采集的功能,比如说DEDE的采集系统,但是对于一些使用者来说,功能太强大了,他们反而不会用,而且DEDE采集到的信息都是直接入库了,对一些 只想看采集图片的用户来说还是满足不了需求。
我觉得功能强大固然好,但是对于使用者来说,便捷方便将会有更大的用户群,希望大家试过这个小工具后,能多提宝贵意见,让这个工具更好为使用者服务。
此条目由 admin 发表在 在线工具 分类目录,并贴了 PHP、在线工具、采集 标签。将固定链接加入收藏夹。
浙公网安备 33010602011771号