不败君

前端萌新&初级后端攻城狮

分享创造-使用PHP开发一键获取网页所有图片

发表:2019-10-24 18:09:44

围观(367)

今天在某个群里看到有这样的需求,就是在一个网页上看到有很多喜欢的图片,但是一个一个下载确实挺累的,而且也没有任何效率可言。本着助人为乐的心情,所以就写了这样的一个小功能。

1.jpg

使用的是 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 扩展,将图片存储的目录遍历文件打包。

4.jpg

原理非常简单,一句话讲完就是:根据目标网址,使用 simple_html_dom 获取到网页的所有 img 标签,然后根据 img 标签的 src 属性,拿到图片地址,再进行访问图片地址拿到图片数据,然后将图片保存在本地指定目录。最后使用 PHP ZIP 扩展将目录遍历打包并提供下载。

整套代码其实只写了一个文件就实现这个功能了。放出来给大家使用:https://pan.baidu.com/s/1uf5oRDy-q6NJ9F3nOUOJyw 提取码:dzyo

使用之后,每个获取一个网页的所有图片,数据都会存放在根目录下的 data 目录里,所以需要定期清理一下这个目录,直接删掉 data 目录就行,当然不清理也没问题,只要不觉得占用存储空间就行。

5.jpg

这套代码也有一些缺点,如果目标网页存在反爬虫或者防盗链,那这套代码就失效没有任何作用了。除了防盗链和反爬虫,还有使用 JS 进行动态渲染加载的网页也同样无法获取到图片。

最后还是说一下,不要用于违法行为,如果图片存在版权问题或者其他问题,导致的后果由使用者自行承担。

放上程序的效果图:

2.jpg

本文地址 : bubaijun.com/page.php?id=143

版权声明 : 未经允许禁止转载!

评论:我要评论
发布评论:
Copyright © 不败君 粤ICP备18102917号-1

不败君

首 页 作 品 微 语