2019-10-24 18:09:44
围观(4350)
今天在某个群里看到有这样的需求,就是在一个网页上看到有很多喜欢的图片,但是一个一个下载确实挺累的,而且也没有任何效率可言。本着助人为乐的心情,所以就写了这样的一个小功能。
使用的是 PHP 语言开发,用到了 simple_html_dom 这个类,这个类已经不止一次出现在我的博文里了... 如果有兴趣的话可以在博客内搜索 “爬虫”。
使用这个类之后一切变得很简单,通过几句代码就能获取到网页的所有 img 标签。
$html = file_get_html('目标网址'); foreach ($html->find('img') as $key => $value) { //$value 就是img标签 //比如获取 src 属性: echo $value->src; }
获取到所有图片之后,可以使用 file_get_contents 函数进行访问图片地址并拿到图片数据。
然后存放在本地,然后再使用 PHP ZIP 扩展,将图片存储的目录遍历文件打包。
原理非常简单,一句话讲完就是:根据目标网址,使用 simple_html_dom 获取到网页的所有 img 标签,然后根据 img 标签的 src 属性,拿到图片地址,再进行访问图片地址拿到图片数据,然后将图片保存在本地指定目录。最后使用 PHP ZIP 扩展将目录遍历打包并提供下载。
整套代码其实只写了一个文件就实现这个功能了。放出来给大家使用:https://pan.baidu.com/s/1uf5oRDy-q6NJ9F3nOUOJyw 提取码:dzyo
使用之后,每个获取一个网页的所有图片,数据都会存放在根目录下的 data 目录里,所以需要定期清理一下这个目录,直接删掉 data 目录就行,当然不清理也没问题,只要不觉得占用存储空间就行。
这套代码也有一些缺点,如果目标网页存在反爬虫或者防盗链,那这套代码就失效没有任何作用了。除了防盗链和反爬虫,还有使用 JS 进行动态渲染加载的网页也同样无法获取到图片。
最后还是说一下,不要用于违法行为,如果图片存在版权问题或者其他问题,导致的后果由使用者自行承担。
放上程序的效果图:
本文地址 : bubaijun.com/page.php?id=143
版权声明 : 未经允许禁止转载!
上一篇文章: 三合一支付二维码原理及开发过程
下一篇文章: 学习使用docker搭建lnmp环境