php抓取网站图片的程序
此程序实现了网页源代码捕获,图片链接获取、分析、并将同样的图片链接合并功能,实现了图片抓取功能。
利用php强大的网络内容处理函数将指定的网站上的所有图片抓取下来,保存在当前目录下,以下为代码:
<p><?php</p>/*完成网页内容捕获功能*/<br />function get_img_url($site_name){<br /> $site_fd = fopen($site_name, "r");<br /> $site_content = "";<br /> while (!feof($site_fd)) {<br /> $site_content .= fread($site_fd, 1024);<br /> }<br /> /*利用正则表达式得到图片链接*/<br /> $reg_tag = '/<img .*?\"([^\"]*(jpg|bmp|jpeg|gif)).*? alt="php抓取网站图片的程序" >/';<br /> $ret = preg_match_all($reg_tag, $site_content, $match_result);<br /> fclose($site_fd);<br /> return $match_result[1];<br />}<br /><br />/* 对图片链接进行修正 */<br />function revise_site($site_list, $base_site){<br /> foreach($site_list as $site_item) {<br /> if (preg_match('/^http/', $site_item)) {<br /> $return_list[] = $site_item;<br /> }else{<br /> $return_list[] = $base_site."/".$site_item;<br /> }<br /> }<br /> return $return_list;<br />}<br /><br />/*得到图片名字,并将其保存在指定位置*/<br />function get_pic_file($pic_url_array, $pos){<br /> $reg_tag = '/.*\/(.*?)$/';<br /> $count = 0;<br /> foreach($pic_url_array as $pic_item){<br /> $ret = preg_match_all($reg_tag,$pic_item,$t_pic_name);<br /> $pic_name = $pos.$t_pic_name[1][0];<br /> $pic_url = $pic_item;<br /> print("Downloading ".$pic_url." ");<br /> $img_read_fd = fopen($pic_url,"r");<br /> $img_write_fd = fopen($pic_name,"w");<br /> $img_content = "";<br /> while(!feof($img_read_fd)){<br /> $img_content .= fread($img_read_fd,1024);<br /> <br /> }<br /> fwrite($img_write_fd,$img_content);<br /> fclose($img_read_fd);<br /> fclose($img_write_fd);<br /> print("[OK] ");<br /> }<br /> return 0;<br />}<br /><br />function main(){<br />/* 待抓取图片的网页地址 */<br /> $site_name = "http://image.cn.yahoo.com";<br /> $img_url = get_img_url($site_name);<br /> $img_url_revised = revise_site($img_url, $site_name);<br /> $img_url_unique = array_unique($img_url_revised); //unique array<br /> get_pic_file($img_url_unique,"./"); <br />}<br /><br />main();<br /><p>?></p>
此程序还有待完善的地方是,如果图片在网站服务器上不同目录下但文件名是相同的,此时图片有可能是不一样的,但在最后保存时,后面得到的图片会将前面已经保存的图片覆盖掉,如在http://example.com/网站上有图片链接http://example.com/pic/test1.jpg和http://example.com/pic/new/test1.jpg那么在下载时这两张图片只有一张保存,另一张就被覆盖掉,修正的方法是在每次保存前先检索当前目录下是否已有此文件名,有的话对将要保存的图片重新命名即可。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长
