
php抓取网页所有图片
php抓取网页所有图片(php抓取网页所有图片,让各种神器都无法限制我的手)
网站优化 • 优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2021-09-29 14:23
php抓取网页所有图片,让各种神器都无法限制我的手。我是一个爱随处抓图的业余php程序员,久而久之练就了一手好php技术。新获得一份php练手题,写的比较差,尽我所能吧。一起加油啊。第一步:导入demo网站/php/index/storage/imgs/test_1_1.jpgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvarphp::append//当输入不同的信息时,而显示的对应信息,非必须.require('/php/index/storage/imgs/test_1_1.jpg')/php/index/storage/imgs/test_1_1.jpgor""//必须写!{}xxxxx这个defineforpagein'test/storage/storage.php':1whereid='test_1_1'storage,imgs='test_1_1':1'exit'end''.'test.php','storage.php','imgs.php':1'''这里的ip地址是2.3.4index,如果require到文件后,以下就可以加上secure_index"",注意,script标签已经写过,这。 查看全部
php抓取网页所有图片(php抓取网页所有图片,让各种神器都无法限制我的手)
php抓取网页所有图片,让各种神器都无法限制我的手。我是一个爱随处抓图的业余php程序员,久而久之练就了一手好php技术。新获得一份php练手题,写的比较差,尽我所能吧。一起加油啊。第一步:导入demo网站/php/index/storage/imgs/test_1_1.jpgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvarphp::append//当输入不同的信息时,而显示的对应信息,非必须.require('/php/index/storage/imgs/test_1_1.jpg')/php/index/storage/imgs/test_1_1.jpgor""//必须写!{}xxxxx这个defineforpagein'test/storage/storage.php':1whereid='test_1_1'storage,imgs='test_1_1':1'exit'end''.'test.php','storage.php','imgs.php':1'''这里的ip地址是2.3.4index,如果require到文件后,以下就可以加上secure_index"",注意,script标签已经写过,这。
php抓取网页所有图片(一个源码,php远程抓取图片小程序-抓取css代码)
网站优化 • 优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2021-09-29 13:06
摘要:作为一名模拟工作站工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响。但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图像。下面的代码也用于捕获C
作为一名模拟工作站的工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响
但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图片。下面的代码也是为在CSS中捕获图片而编写的
然后,如果没有意外的话,你会发现你指定的文件夹里满是图片,哈哈
PS:PHP获取远程图片,下载并在本地保存
共享使用php获取远程图像并在本地下载和保存远程图像的功能代码:
/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir='',$filename='',$type=0){
if(trim($url)==''){
return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
$save_dir='./';
}
if(trim($filename)==''){//保存文件名
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){
return array('file_name'=>'','save_path'=>'','error'=>3);
}
$filename=time().$ext;
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array('file_name'=>'','save_path'=>'','error'=>5);
}
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
//$size=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}
有关如何从PHP源代码批量抓取远程网页图像并将其保存到本地的更多信息,请关注PHP中文网站()other文章 查看全部
php抓取网页所有图片(一个源码,php远程抓取图片小程序-抓取css代码)
摘要:作为一名模拟工作站工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响。但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图像。下面的代码也用于捕获C
作为一名模拟工作站的工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响
但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图片。下面的代码也是为在CSS中捕获图片而编写的
然后,如果没有意外的话,你会发现你指定的文件夹里满是图片,哈哈
PS:PHP获取远程图片,下载并在本地保存
共享使用php获取远程图像并在本地下载和保存远程图像的功能代码:
/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir='',$filename='',$type=0){
if(trim($url)==''){
return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
$save_dir='./';
}
if(trim($filename)==''){//保存文件名
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){
return array('file_name'=>'','save_path'=>'','error'=>3);
}
$filename=time().$ext;
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array('file_name'=>'','save_path'=>'','error'=>5);
}
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
//$size=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}
有关如何从PHP源代码批量抓取远程网页图像并将其保存到本地的更多信息,请关注PHP中文网站()other文章
php抓取网页所有图片(推荐程序Octoparse--优采云在这里插入图片描述(图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 73 次浏览 • 2021-09-27 16:16
推荐程序Octoparse--优采云
在此处插入图片说明
这不仅操作简单,功能齐全,而且可以在短时间内获取大量数据。特别推荐Octoparse的云采集功能,好评如潮。
在此处插入图片说明
Cyotek 网络复制
在此处插入图片说明
WebCopy 是一个免费的网站 爬虫,它允许您将网站 的本地或完整部分复制到您的硬盘驱动器以供离线阅读。
它会扫描指定的网站,然后将网站的内容下载到你的硬盘上,并自动重新映射网站中的图片和其他网页的链接以匹配其本地路径,排除网站的一部分。也可以使用其他选项,例如下载要收录在副本中的 URL,但不对其进行抓取。
您可以使用多种设置来配置网站 的爬取方式。除了上面提到的规则和表单,你还可以配置域别名、用户代理字符串、默认文档等。
在此处插入图片说明
但是,WebCopy 不包括虚拟 DOM 或任何形式的 JavaScript 解析。如果一个 网站 大量使用 JavaScript 进行操作,并且如果使用 JavaScript 动态生成链接并且无法找到所有 网站,那么 WebCopy 不太可能会做出真正的副本。
跟踪
作为一款网站爬虫免费软件,HTTrack提供的功能非常适合将整个网站从网上下载到PC上。它提供了适用于 Windows、Linux、Sun Solaris 和其他 Unix 系统的版本。它可以将一个站点或多个站点镜像到一起(使用共享链接)。您可以在“设置”下决定在下载网页时要同时打开多少个连接。您可以从整个目录中获取照片、文件、HTML 代码,更新当前镜像 网站 并恢复中断的下载。
在此处插入图片说明
此外,HTTTrack 还提供代理支持以最大限度地提高速度并提供可选的身份验证。
HTTrack 用作命令行程序,或通过外壳进行私有(捕获)或专业(在线网络镜像)使用。有了这个说法,HTTrack应该是首选,编程能力高的人用的比较多
概括
总之,我上面提到的爬虫可以满足大部分用户的基本爬虫需求,而且这些工具各自的功能还是有很多区别的,因为这些爬虫工具很多都为用户提供了更高级的内置配置工具。因此,在使用前请务必充分了解爬虫提供的帮助信息。 查看全部
php抓取网页所有图片(推荐程序Octoparse--优采云在这里插入图片描述(图))
推荐程序Octoparse--优采云
在此处插入图片说明
这不仅操作简单,功能齐全,而且可以在短时间内获取大量数据。特别推荐Octoparse的云采集功能,好评如潮。
在此处插入图片说明
Cyotek 网络复制
在此处插入图片说明
WebCopy 是一个免费的网站 爬虫,它允许您将网站 的本地或完整部分复制到您的硬盘驱动器以供离线阅读。
它会扫描指定的网站,然后将网站的内容下载到你的硬盘上,并自动重新映射网站中的图片和其他网页的链接以匹配其本地路径,排除网站的一部分。也可以使用其他选项,例如下载要收录在副本中的 URL,但不对其进行抓取。
您可以使用多种设置来配置网站 的爬取方式。除了上面提到的规则和表单,你还可以配置域别名、用户代理字符串、默认文档等。
在此处插入图片说明
但是,WebCopy 不包括虚拟 DOM 或任何形式的 JavaScript 解析。如果一个 网站 大量使用 JavaScript 进行操作,并且如果使用 JavaScript 动态生成链接并且无法找到所有 网站,那么 WebCopy 不太可能会做出真正的副本。
跟踪
作为一款网站爬虫免费软件,HTTrack提供的功能非常适合将整个网站从网上下载到PC上。它提供了适用于 Windows、Linux、Sun Solaris 和其他 Unix 系统的版本。它可以将一个站点或多个站点镜像到一起(使用共享链接)。您可以在“设置”下决定在下载网页时要同时打开多少个连接。您可以从整个目录中获取照片、文件、HTML 代码,更新当前镜像 网站 并恢复中断的下载。
在此处插入图片说明
此外,HTTTrack 还提供代理支持以最大限度地提高速度并提供可选的身份验证。
HTTrack 用作命令行程序,或通过外壳进行私有(捕获)或专业(在线网络镜像)使用。有了这个说法,HTTrack应该是首选,编程能力高的人用的比较多
概括
总之,我上面提到的爬虫可以满足大部分用户的基本爬虫需求,而且这些工具各自的功能还是有很多区别的,因为这些爬虫工具很多都为用户提供了更高级的内置配置工具。因此,在使用前请务必充分了解爬虫提供的帮助信息。
php抓取网页所有图片(用python做过爬虫,爬虫最让人头痛的问题)
网站优化 • 优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2021-09-22 07:08
用python制作爬行动物,最多的爬行动物,最多的人,主要是:网页编码,抓取效率,源站反攀爬策略,网页1000万,网站在不同地区使用,有时候当然不同,即使是网站,也可以使用GBK和UTF-8或更多编码,这完全取决于网页制作人的偏好,有时制造商使用的编辑器,它将是疏忽还导致要编码的代码。
在休闲中,你的手没有什么,博客也更新,使用PHP获取页面标题[标题]部分,注意标题部分,涉及编码采集,编码转换和常规用。当然,这只是一种简单的方法,它将在HTTPS协议的网页中遇到麻烦。
以下代码肯定是一个无法承受网站的衰退,它不能用于完成一些高困难的任务 - 例如处理协同,验证,表单提交,文件上传等。要高度定制,更好的解决方案是使用PHP的卷曲库。 Curl是一个强大的库,支持许多不同的协议,选项,它可以提供与URL请求相关的各种细节,而后,而不是讨论。
本文的目的只是关于获取网页的过程:访问URL-和GT;获取Web Content - >使用常规提取标题 - >代码检测和转换 - >显示结果。
版本1文件:class.html.php:
得到结果,已达到目的:
京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
美国还不够:虽然获得了正确的结果,但源代码每次捕获页面时都需要更改源代码。你能聪明地变得更加聪明吗?答案是肯定的,使用get方法,将相应的URL值传入作为gettitle()的参数。当您需要采集 A页标题时,您可以直接在地址栏中修改URL地址。
版本2文件:class.html.php
如何使用:浏览器运行class.html.php? URL = Web URL
本网站使用阿里巴巴云服务器,从下面,有一个折扣↓
服务器选择|爆炸性特殊|新人福利|旧用户续订 查看全部
php抓取网页所有图片(用python做过爬虫,爬虫最让人头痛的问题)
用python制作爬行动物,最多的爬行动物,最多的人,主要是:网页编码,抓取效率,源站反攀爬策略,网页1000万,网站在不同地区使用,有时候当然不同,即使是网站,也可以使用GBK和UTF-8或更多编码,这完全取决于网页制作人的偏好,有时制造商使用的编辑器,它将是疏忽还导致要编码的代码。
在休闲中,你的手没有什么,博客也更新,使用PHP获取页面标题[标题]部分,注意标题部分,涉及编码采集,编码转换和常规用。当然,这只是一种简单的方法,它将在HTTPS协议的网页中遇到麻烦。
以下代码肯定是一个无法承受网站的衰退,它不能用于完成一些高困难的任务 - 例如处理协同,验证,表单提交,文件上传等。要高度定制,更好的解决方案是使用PHP的卷曲库。 Curl是一个强大的库,支持许多不同的协议,选项,它可以提供与URL请求相关的各种细节,而后,而不是讨论。
本文的目的只是关于获取网页的过程:访问URL-和GT;获取Web Content - >使用常规提取标题 - >代码检测和转换 - >显示结果。
版本1文件:class.html.php:
得到结果,已达到目的:
京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
美国还不够:虽然获得了正确的结果,但源代码每次捕获页面时都需要更改源代码。你能聪明地变得更加聪明吗?答案是肯定的,使用get方法,将相应的URL值传入作为gettitle()的参数。当您需要采集 A页标题时,您可以直接在地址栏中修改URL地址。
版本2文件:class.html.php
如何使用:浏览器运行class.html.php? URL = Web URL
本网站使用阿里巴巴云服务器,从下面,有一个折扣↓
服务器选择|爆炸性特殊|新人福利|旧用户续订
php抓取网页所有图片( 分布式架构、高可扩展、服务器性能高级进阶干货 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 111 次浏览 • 2021-09-21 11:23
分布式架构、高可扩展、服务器性能高级进阶干货
)
/**
* 递归下载抓取首页及其子页面图片的方法 ( recursive 递归)
*
* @param String $capture_url 用于抓取图片的网址
*
*/
public function recursive_download_images($capture_url)
{
if (!in_array($capture_url,self::$a_url_arr)) //没抓取过
{
self::$a_url_arr[]=$capture_url; //计入静态数组
} else //抓取过,直接退出函数
{
return;
}
$this->download_current_page_images($capture_url); //下载当前页面的所有图片
//用@屏蔽掉因为抓取地址无法读取导致的warning错误
$content=@file_get_contents($capture_url);
//匹配a标签href属性中?之前部分的正则
$a_pattern = "|]+href=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($a_pattern, $content, $a_out, PREG_SET_ORDER);
$tmp_arr=array(); //定义一个数组,用于存放当前循环下抓取图片的超链接地址
foreach ($a_out as $k => $v)
{
/**
* 去除超链接中的 空'','#','/'和重复值
* 1: 超链接地址的值 不能等于当前抓取页面的url, 否则会陷入死循环
* 2: 超链接为''或'#','/'也是本页面,这样也会陷入死循环,
* 3: 有时一个超连接地址在一个网页中会重复出现多次,如果不去除,会对一个子页面进行重复下载)
*/
if ( $v[1] && !in_array($v[1],self::$a_url_arr) &&!in_array($v[1],array('#','/',$capture_url) ) )
{
$tmp_arr[]=$v[1];
}
}
foreach ($tmp_arr as $k => $v)
{
//超链接路径地址
if ( strpos($v, 'http://')!==false ) //如果url包含http://,可以直接访问
{
$a_url = $v;
}else //否则证明是相对地址, 需要重新拼凑超链接的访问地址
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$a_url=$domain_url.$v;
}
$this->recursive_download_images($a_url);
}
}
下载所有当前页面
/**
* 下载当前网页下的所有图片
*
* @param String $capture_url 用于抓取图片的网页地址
* @return Array 当前网页上所有图片img标签url地址的一个数组
*/
public function download_current_page_images($capture_url)
{
$content=@file_get_contents($capture_url); //屏蔽warning错误
//匹配img标签src属性中?之前部分的正则
$img_pattern = "|]+src=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($img_pattern, $content, $img_out, PREG_SET_ORDER);
$photo_num = count($img_out);
//匹配到的图片数量
echo ''.$capture_url . "共找到 " . $photo_num . " 张图片";
foreach ($img_out as $k => $v)
{
$this->save_one_img($capture_url,$v[1]);
}
}
保存图片
/**
* 保存单个图片的方法
*
* @param String $capture_url 用于抓取图片的网页地址
* @param String $img_url 需要保存的图片的url
*
*/
public function save_one_img($capture_url,$img_url)
{
//图片路径地址
if ( strpos($img_url, 'http://')!==false )
{
// $img_url = $img_url;
}else
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$img_url=$domain_url.$img_url;
}
$pathinfo = pathinfo($img_url); //获取图片路径信息
$pic_name=$pathinfo['basename']; //获取图片的名字
if (file_exists($this->save_path.$pic_name)) //如果图片存在,证明已经被抓取过,退出函数
{
echo $img_url . '该图片已经抓取过!
';
return;
}
//将图片内容读入一个字符串
$img_data = @file_get_contents($img_url); //屏蔽掉因为图片地址无法读取导致的warning错误
if ( strlen($img_data) > $this->img_size ) //下载size比限制大的图片
{
$img_size = file_put_contents($this->save_path . $pic_name, $img_data);
if ($img_size)
{
echo $img_url . '图片保存成功!
';
} else
{
echo $img_url . '图片保存失败!
';
}
} else
{
echo $img_url . '图片读取失败!
';
}
}
} // END
让我们来看一个完整的函数类。直接保存并引用即可
<p> 查看全部
php抓取网页所有图片(
分布式架构、高可扩展、服务器性能高级进阶干货
)
/**
* 递归下载抓取首页及其子页面图片的方法 ( recursive 递归)
*
* @param String $capture_url 用于抓取图片的网址
*
*/
public function recursive_download_images($capture_url)
{
if (!in_array($capture_url,self::$a_url_arr)) //没抓取过
{
self::$a_url_arr[]=$capture_url; //计入静态数组
} else //抓取过,直接退出函数
{
return;
}
$this->download_current_page_images($capture_url); //下载当前页面的所有图片
//用@屏蔽掉因为抓取地址无法读取导致的warning错误
$content=@file_get_contents($capture_url);
//匹配a标签href属性中?之前部分的正则
$a_pattern = "|]+href=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($a_pattern, $content, $a_out, PREG_SET_ORDER);
$tmp_arr=array(); //定义一个数组,用于存放当前循环下抓取图片的超链接地址
foreach ($a_out as $k => $v)
{
/**
* 去除超链接中的 空'','#','/'和重复值
* 1: 超链接地址的值 不能等于当前抓取页面的url, 否则会陷入死循环
* 2: 超链接为''或'#','/'也是本页面,这样也会陷入死循环,
* 3: 有时一个超连接地址在一个网页中会重复出现多次,如果不去除,会对一个子页面进行重复下载)
*/
if ( $v[1] && !in_array($v[1],self::$a_url_arr) &&!in_array($v[1],array('#','/',$capture_url) ) )
{
$tmp_arr[]=$v[1];
}
}
foreach ($tmp_arr as $k => $v)
{
//超链接路径地址
if ( strpos($v, 'http://')!==false ) //如果url包含http://,可以直接访问
{
$a_url = $v;
}else //否则证明是相对地址, 需要重新拼凑超链接的访问地址
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$a_url=$domain_url.$v;
}
$this->recursive_download_images($a_url);
}
}
下载所有当前页面
/**
* 下载当前网页下的所有图片
*
* @param String $capture_url 用于抓取图片的网页地址
* @return Array 当前网页上所有图片img标签url地址的一个数组
*/
public function download_current_page_images($capture_url)
{
$content=@file_get_contents($capture_url); //屏蔽warning错误
//匹配img标签src属性中?之前部分的正则
$img_pattern = "|]+src=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($img_pattern, $content, $img_out, PREG_SET_ORDER);
$photo_num = count($img_out);
//匹配到的图片数量
echo ''.$capture_url . "共找到 " . $photo_num . " 张图片";
foreach ($img_out as $k => $v)
{
$this->save_one_img($capture_url,$v[1]);
}
}
保存图片
/**
* 保存单个图片的方法
*
* @param String $capture_url 用于抓取图片的网页地址
* @param String $img_url 需要保存的图片的url
*
*/
public function save_one_img($capture_url,$img_url)
{
//图片路径地址
if ( strpos($img_url, 'http://')!==false )
{
// $img_url = $img_url;
}else
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$img_url=$domain_url.$img_url;
}
$pathinfo = pathinfo($img_url); //获取图片路径信息
$pic_name=$pathinfo['basename']; //获取图片的名字
if (file_exists($this->save_path.$pic_name)) //如果图片存在,证明已经被抓取过,退出函数
{
echo $img_url . '该图片已经抓取过!
';
return;
}
//将图片内容读入一个字符串
$img_data = @file_get_contents($img_url); //屏蔽掉因为图片地址无法读取导致的warning错误
if ( strlen($img_data) > $this->img_size ) //下载size比限制大的图片
{
$img_size = file_put_contents($this->save_path . $pic_name, $img_data);
if ($img_size)
{
echo $img_url . '图片保存成功!
';
} else
{
echo $img_url . '图片保存失败!
';
}
} else
{
echo $img_url . '图片读取失败!
';
}
}
} // END
让我们来看一个完整的函数类。直接保存并引用即可
<p>
php抓取网页所有图片(这篇就是分享给大家的全部内容了,希望大家多多支持网页设计)
网站优化 • 优采云 发表了文章 • 0 个评论 • 66 次浏览 • 2021-09-19 11:20
详情如下:
$hostdir=dirname(__FILE__)."/data/upload/admin/20170517/"; //要读取的文件夹$url = "/data/upload/admin/20170517/"; //图片所存在的目录$filesnames = scandir($hostdir); //得到所有的文件// print_r($filesnames);exit;//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames$www = "http://www.***.com/"; //域名foreach ($filesnames as $name) { $aurl= ""; //图片 echo $aurl . "
"; //输出他}
上面PHP读取文件夹下所有图片和文件的例子是小编共享的所有内容。我希望它能给你一个参考和支持网页设计
标签:PHP读取文件夹中所有图片和文件的实例
易白互联网是中国知名的品牌服务提供商。我们在网站建设、网站制作、网页设计、PHP开发、域名注册和虚拟主机服务方面拥有九年的经验。易白互联网提供的自助站房服务在中国更是家喻户晓。近年来,公司还整合团队优势,自主研发了可视化多用户“顶云建站系统”3.0平台版,拖放排版网站制作设计,轻松实现PC站、移动微网站、applet、app的全网营销网站建设一体化,成功为全国数百家网络公司提供自助平台建设服务。更多信息:标签
上一篇文章:PHP使用glob方法遍历文件夹中的所有文件实例
下一步:PHP使laravel返回JSON rest API的自定义错误
[返回新闻列表] 查看全部
php抓取网页所有图片(这篇就是分享给大家的全部内容了,希望大家多多支持网页设计)
详情如下:
$hostdir=dirname(__FILE__)."/data/upload/admin/20170517/"; //要读取的文件夹$url = "/data/upload/admin/20170517/"; //图片所存在的目录$filesnames = scandir($hostdir); //得到所有的文件// print_r($filesnames);exit;//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames$www = "http://www.***.com/"; //域名foreach ($filesnames as $name) { $aurl= ""; //图片 echo $aurl . "
"; //输出他}
上面PHP读取文件夹下所有图片和文件的例子是小编共享的所有内容。我希望它能给你一个参考和支持网页设计
标签:PHP读取文件夹中所有图片和文件的实例
易白互联网是中国知名的品牌服务提供商。我们在网站建设、网站制作、网页设计、PHP开发、域名注册和虚拟主机服务方面拥有九年的经验。易白互联网提供的自助站房服务在中国更是家喻户晓。近年来,公司还整合团队优势,自主研发了可视化多用户“顶云建站系统”3.0平台版,拖放排版网站制作设计,轻松实现PC站、移动微网站、applet、app的全网营销网站建设一体化,成功为全国数百家网络公司提供自助平台建设服务。更多信息:标签
上一篇文章:PHP使用glob方法遍历文件夹中的所有文件实例
下一步:PHP使laravel返回JSON rest API的自定义错误
[返回新闻列表]
php抓取网页所有图片(php抓取网页所有图片,让各种神器都无法限制我的手)
网站优化 • 优采云 发表了文章 • 0 个评论 • 76 次浏览 • 2021-09-29 14:23
php抓取网页所有图片,让各种神器都无法限制我的手。我是一个爱随处抓图的业余php程序员,久而久之练就了一手好php技术。新获得一份php练手题,写的比较差,尽我所能吧。一起加油啊。第一步:导入demo网站/php/index/storage/imgs/test_1_1.jpgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvarphp::append//当输入不同的信息时,而显示的对应信息,非必须.require('/php/index/storage/imgs/test_1_1.jpg')/php/index/storage/imgs/test_1_1.jpgor""//必须写!{}xxxxx这个defineforpagein'test/storage/storage.php':1whereid='test_1_1'storage,imgs='test_1_1':1'exit'end''.'test.php','storage.php','imgs.php':1'''这里的ip地址是2.3.4index,如果require到文件后,以下就可以加上secure_index"",注意,script标签已经写过,这。 查看全部
php抓取网页所有图片(php抓取网页所有图片,让各种神器都无法限制我的手)
php抓取网页所有图片,让各种神器都无法限制我的手。我是一个爱随处抓图的业余php程序员,久而久之练就了一手好php技术。新获得一份php练手题,写的比较差,尽我所能吧。一起加油啊。第一步:导入demo网站/php/index/storage/imgs/test_1_1.jpgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvarphp::append//当输入不同的信息时,而显示的对应信息,非必须.require('/php/index/storage/imgs/test_1_1.jpg')/php/index/storage/imgs/test_1_1.jpgor""//必须写!{}xxxxx这个defineforpagein'test/storage/storage.php':1whereid='test_1_1'storage,imgs='test_1_1':1'exit'end''.'test.php','storage.php','imgs.php':1'''这里的ip地址是2.3.4index,如果require到文件后,以下就可以加上secure_index"",注意,script标签已经写过,这。
php抓取网页所有图片(一个源码,php远程抓取图片小程序-抓取css代码)
网站优化 • 优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2021-09-29 13:06
摘要:作为一名模拟工作站工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响。但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图像。下面的代码也用于捕获C
作为一名模拟工作站的工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响
但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图片。下面的代码也是为在CSS中捕获图片而编写的
然后,如果没有意外的话,你会发现你指定的文件夹里满是图片,哈哈
PS:PHP获取远程图片,下载并在本地保存
共享使用php获取远程图像并在本地下载和保存远程图像的功能代码:
/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir='',$filename='',$type=0){
if(trim($url)==''){
return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
$save_dir='./';
}
if(trim($filename)==''){//保存文件名
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){
return array('file_name'=>'','save_path'=>'','error'=>3);
}
$filename=time().$ext;
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array('file_name'=>'','save_path'=>'','error'=>5);
}
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
//$size=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}
有关如何从PHP源代码批量抓取远程网页图像并将其保存到本地的更多信息,请关注PHP中文网站()other文章 查看全部
php抓取网页所有图片(一个源码,php远程抓取图片小程序-抓取css代码)
摘要:作为一名模拟工作站工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响。但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图像。下面的代码也用于捕获C
作为一名模拟工作站的工作人员,当网站拥有版权甚至加密时,WebZip也会关闭。如何扣除网页上的图片和背景图片。有时,您可能会考虑使用Firefox。这个浏览器就像一个强大的bug,文章拥有版权并阻止右键。Firefox完全不会受到影响
但作为一名热爱PHP的开发人员,他喜欢自己动手。因此,我编写了以下源代码,PHP远程图像捕获小程序。您可以读取CSS文件并获取CSS代码中的背景图片。下面的代码也是为在CSS中捕获图片而编写的
然后,如果没有意外的话,你会发现你指定的文件夹里满是图片,哈哈
PS:PHP获取远程图片,下载并在本地保存
共享使用php获取远程图像并在本地下载和保存远程图像的功能代码:
/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir='',$filename='',$type=0){
if(trim($url)==''){
return array('file_name'=>'','save_path'=>'','error'=>1);
}
if(trim($save_dir)==''){
$save_dir='./';
}
if(trim($filename)==''){//保存文件名
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){
return array('file_name'=>'','save_path'=>'','error'=>3);
}
$filename=time().$ext;
}
if(0!==strrpos($save_dir,'/')){
$save_dir.='/';
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array('file_name'=>'','save_path'=>'','error'=>5);
}
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
//$size=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,'a');
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0);
}
有关如何从PHP源代码批量抓取远程网页图像并将其保存到本地的更多信息,请关注PHP中文网站()other文章
php抓取网页所有图片(推荐程序Octoparse--优采云在这里插入图片描述(图))
网站优化 • 优采云 发表了文章 • 0 个评论 • 73 次浏览 • 2021-09-27 16:16
推荐程序Octoparse--优采云
在此处插入图片说明
这不仅操作简单,功能齐全,而且可以在短时间内获取大量数据。特别推荐Octoparse的云采集功能,好评如潮。
在此处插入图片说明
Cyotek 网络复制
在此处插入图片说明
WebCopy 是一个免费的网站 爬虫,它允许您将网站 的本地或完整部分复制到您的硬盘驱动器以供离线阅读。
它会扫描指定的网站,然后将网站的内容下载到你的硬盘上,并自动重新映射网站中的图片和其他网页的链接以匹配其本地路径,排除网站的一部分。也可以使用其他选项,例如下载要收录在副本中的 URL,但不对其进行抓取。
您可以使用多种设置来配置网站 的爬取方式。除了上面提到的规则和表单,你还可以配置域别名、用户代理字符串、默认文档等。
在此处插入图片说明
但是,WebCopy 不包括虚拟 DOM 或任何形式的 JavaScript 解析。如果一个 网站 大量使用 JavaScript 进行操作,并且如果使用 JavaScript 动态生成链接并且无法找到所有 网站,那么 WebCopy 不太可能会做出真正的副本。
跟踪
作为一款网站爬虫免费软件,HTTrack提供的功能非常适合将整个网站从网上下载到PC上。它提供了适用于 Windows、Linux、Sun Solaris 和其他 Unix 系统的版本。它可以将一个站点或多个站点镜像到一起(使用共享链接)。您可以在“设置”下决定在下载网页时要同时打开多少个连接。您可以从整个目录中获取照片、文件、HTML 代码,更新当前镜像 网站 并恢复中断的下载。
在此处插入图片说明
此外,HTTTrack 还提供代理支持以最大限度地提高速度并提供可选的身份验证。
HTTrack 用作命令行程序,或通过外壳进行私有(捕获)或专业(在线网络镜像)使用。有了这个说法,HTTrack应该是首选,编程能力高的人用的比较多
概括
总之,我上面提到的爬虫可以满足大部分用户的基本爬虫需求,而且这些工具各自的功能还是有很多区别的,因为这些爬虫工具很多都为用户提供了更高级的内置配置工具。因此,在使用前请务必充分了解爬虫提供的帮助信息。 查看全部
php抓取网页所有图片(推荐程序Octoparse--优采云在这里插入图片描述(图))
推荐程序Octoparse--优采云
在此处插入图片说明
这不仅操作简单,功能齐全,而且可以在短时间内获取大量数据。特别推荐Octoparse的云采集功能,好评如潮。
在此处插入图片说明
Cyotek 网络复制
在此处插入图片说明
WebCopy 是一个免费的网站 爬虫,它允许您将网站 的本地或完整部分复制到您的硬盘驱动器以供离线阅读。
它会扫描指定的网站,然后将网站的内容下载到你的硬盘上,并自动重新映射网站中的图片和其他网页的链接以匹配其本地路径,排除网站的一部分。也可以使用其他选项,例如下载要收录在副本中的 URL,但不对其进行抓取。
您可以使用多种设置来配置网站 的爬取方式。除了上面提到的规则和表单,你还可以配置域别名、用户代理字符串、默认文档等。
在此处插入图片说明
但是,WebCopy 不包括虚拟 DOM 或任何形式的 JavaScript 解析。如果一个 网站 大量使用 JavaScript 进行操作,并且如果使用 JavaScript 动态生成链接并且无法找到所有 网站,那么 WebCopy 不太可能会做出真正的副本。
跟踪
作为一款网站爬虫免费软件,HTTrack提供的功能非常适合将整个网站从网上下载到PC上。它提供了适用于 Windows、Linux、Sun Solaris 和其他 Unix 系统的版本。它可以将一个站点或多个站点镜像到一起(使用共享链接)。您可以在“设置”下决定在下载网页时要同时打开多少个连接。您可以从整个目录中获取照片、文件、HTML 代码,更新当前镜像 网站 并恢复中断的下载。
在此处插入图片说明
此外,HTTTrack 还提供代理支持以最大限度地提高速度并提供可选的身份验证。
HTTrack 用作命令行程序,或通过外壳进行私有(捕获)或专业(在线网络镜像)使用。有了这个说法,HTTrack应该是首选,编程能力高的人用的比较多
概括
总之,我上面提到的爬虫可以满足大部分用户的基本爬虫需求,而且这些工具各自的功能还是有很多区别的,因为这些爬虫工具很多都为用户提供了更高级的内置配置工具。因此,在使用前请务必充分了解爬虫提供的帮助信息。
php抓取网页所有图片(用python做过爬虫,爬虫最让人头痛的问题)
网站优化 • 优采云 发表了文章 • 0 个评论 • 95 次浏览 • 2021-09-22 07:08
用python制作爬行动物,最多的爬行动物,最多的人,主要是:网页编码,抓取效率,源站反攀爬策略,网页1000万,网站在不同地区使用,有时候当然不同,即使是网站,也可以使用GBK和UTF-8或更多编码,这完全取决于网页制作人的偏好,有时制造商使用的编辑器,它将是疏忽还导致要编码的代码。
在休闲中,你的手没有什么,博客也更新,使用PHP获取页面标题[标题]部分,注意标题部分,涉及编码采集,编码转换和常规用。当然,这只是一种简单的方法,它将在HTTPS协议的网页中遇到麻烦。
以下代码肯定是一个无法承受网站的衰退,它不能用于完成一些高困难的任务 - 例如处理协同,验证,表单提交,文件上传等。要高度定制,更好的解决方案是使用PHP的卷曲库。 Curl是一个强大的库,支持许多不同的协议,选项,它可以提供与URL请求相关的各种细节,而后,而不是讨论。
本文的目的只是关于获取网页的过程:访问URL-和GT;获取Web Content - &gt;使用常规提取标题 - &gt;代码检测和转换 - &gt;显示结果。
版本1文件:class.html.php:
得到结果,已达到目的:
京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
美国还不够:虽然获得了正确的结果,但源代码每次捕获页面时都需要更改源代码。你能聪明地变得更加聪明吗?答案是肯定的,使用get方法,将相应的URL值传入作为gettitle()的参数。当您需要采集 A页标题时,您可以直接在地址栏中修改URL地址。
版本2文件:class.html.php
如何使用:浏览器运行class.html.php? URL = Web URL
本网站使用阿里巴巴云服务器,从下面,有一个折扣↓
服务器选择|爆炸性特殊|新人福利|旧用户续订 查看全部
php抓取网页所有图片(用python做过爬虫,爬虫最让人头痛的问题)
用python制作爬行动物,最多的爬行动物,最多的人,主要是:网页编码,抓取效率,源站反攀爬策略,网页1000万,网站在不同地区使用,有时候当然不同,即使是网站,也可以使用GBK和UTF-8或更多编码,这完全取决于网页制作人的偏好,有时制造商使用的编辑器,它将是疏忽还导致要编码的代码。
在休闲中,你的手没有什么,博客也更新,使用PHP获取页面标题[标题]部分,注意标题部分,涉及编码采集,编码转换和常规用。当然,这只是一种简单的方法,它将在HTTPS协议的网页中遇到麻烦。
以下代码肯定是一个无法承受网站的衰退,它不能用于完成一些高困难的任务 - 例如处理协同,验证,表单提交,文件上传等。要高度定制,更好的解决方案是使用PHP的卷曲库。 Curl是一个强大的库,支持许多不同的协议,选项,它可以提供与URL请求相关的各种细节,而后,而不是讨论。
本文的目的只是关于获取网页的过程:访问URL-和GT;获取Web Content - &gt;使用常规提取标题 - &gt;代码检测和转换 - &gt;显示结果。
版本1文件:class.html.php:
得到结果,已达到目的:
京东(JD.COM)-综合网购首选-正品低价、品质保障、配送及时、轻松购物!
美国还不够:虽然获得了正确的结果,但源代码每次捕获页面时都需要更改源代码。你能聪明地变得更加聪明吗?答案是肯定的,使用get方法,将相应的URL值传入作为gettitle()的参数。当您需要采集 A页标题时,您可以直接在地址栏中修改URL地址。
版本2文件:class.html.php
如何使用:浏览器运行class.html.php? URL = Web URL
本网站使用阿里巴巴云服务器,从下面,有一个折扣↓
服务器选择|爆炸性特殊|新人福利|旧用户续订
php抓取网页所有图片( 分布式架构、高可扩展、服务器性能高级进阶干货 )
网站优化 • 优采云 发表了文章 • 0 个评论 • 111 次浏览 • 2021-09-21 11:23
分布式架构、高可扩展、服务器性能高级进阶干货
)
/**
* 递归下载抓取首页及其子页面图片的方法 ( recursive 递归)
*
* @param String $capture_url 用于抓取图片的网址
*
*/
public function recursive_download_images($capture_url)
{
if (!in_array($capture_url,self::$a_url_arr)) //没抓取过
{
self::$a_url_arr[]=$capture_url; //计入静态数组
} else //抓取过,直接退出函数
{
return;
}
$this->download_current_page_images($capture_url); //下载当前页面的所有图片
//用@屏蔽掉因为抓取地址无法读取导致的warning错误
$content=@file_get_contents($capture_url);
//匹配a标签href属性中?之前部分的正则
$a_pattern = "|]+href=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($a_pattern, $content, $a_out, PREG_SET_ORDER);
$tmp_arr=array(); //定义一个数组,用于存放当前循环下抓取图片的超链接地址
foreach ($a_out as $k => $v)
{
/**
* 去除超链接中的 空'','#','/'和重复值
* 1: 超链接地址的值 不能等于当前抓取页面的url, 否则会陷入死循环
* 2: 超链接为''或'#','/'也是本页面,这样也会陷入死循环,
* 3: 有时一个超连接地址在一个网页中会重复出现多次,如果不去除,会对一个子页面进行重复下载)
*/
if ( $v[1] && !in_array($v[1],self::$a_url_arr) &&!in_array($v[1],array('#','/',$capture_url) ) )
{
$tmp_arr[]=$v[1];
}
}
foreach ($tmp_arr as $k => $v)
{
//超链接路径地址
if ( strpos($v, 'http://')!==false ) //如果url包含http://,可以直接访问
{
$a_url = $v;
}else //否则证明是相对地址, 需要重新拼凑超链接的访问地址
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$a_url=$domain_url.$v;
}
$this->recursive_download_images($a_url);
}
}
下载所有当前页面
/**
* 下载当前网页下的所有图片
*
* @param String $capture_url 用于抓取图片的网页地址
* @return Array 当前网页上所有图片img标签url地址的一个数组
*/
public function download_current_page_images($capture_url)
{
$content=@file_get_contents($capture_url); //屏蔽warning错误
//匹配img标签src属性中?之前部分的正则
$img_pattern = "|]+src=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($img_pattern, $content, $img_out, PREG_SET_ORDER);
$photo_num = count($img_out);
//匹配到的图片数量
echo ''.$capture_url . "共找到 " . $photo_num . " 张图片";
foreach ($img_out as $k => $v)
{
$this->save_one_img($capture_url,$v[1]);
}
}
保存图片
/**
* 保存单个图片的方法
*
* @param String $capture_url 用于抓取图片的网页地址
* @param String $img_url 需要保存的图片的url
*
*/
public function save_one_img($capture_url,$img_url)
{
//图片路径地址
if ( strpos($img_url, 'http://')!==false )
{
// $img_url = $img_url;
}else
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$img_url=$domain_url.$img_url;
}
$pathinfo = pathinfo($img_url); //获取图片路径信息
$pic_name=$pathinfo['basename']; //获取图片的名字
if (file_exists($this->save_path.$pic_name)) //如果图片存在,证明已经被抓取过,退出函数
{
echo $img_url . '该图片已经抓取过!
';
return;
}
//将图片内容读入一个字符串
$img_data = @file_get_contents($img_url); //屏蔽掉因为图片地址无法读取导致的warning错误
if ( strlen($img_data) > $this->img_size ) //下载size比限制大的图片
{
$img_size = file_put_contents($this->save_path . $pic_name, $img_data);
if ($img_size)
{
echo $img_url . '图片保存成功!
';
} else
{
echo $img_url . '图片保存失败!
';
}
} else
{
echo $img_url . '图片读取失败!
';
}
}
} // END
让我们来看一个完整的函数类。直接保存并引用即可
<p> 查看全部
php抓取网页所有图片(
分布式架构、高可扩展、服务器性能高级进阶干货
)
/**
* 递归下载抓取首页及其子页面图片的方法 ( recursive 递归)
*
* @param String $capture_url 用于抓取图片的网址
*
*/
public function recursive_download_images($capture_url)
{
if (!in_array($capture_url,self::$a_url_arr)) //没抓取过
{
self::$a_url_arr[]=$capture_url; //计入静态数组
} else //抓取过,直接退出函数
{
return;
}
$this->download_current_page_images($capture_url); //下载当前页面的所有图片
//用@屏蔽掉因为抓取地址无法读取导致的warning错误
$content=@file_get_contents($capture_url);
//匹配a标签href属性中?之前部分的正则
$a_pattern = "|]+href=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($a_pattern, $content, $a_out, PREG_SET_ORDER);
$tmp_arr=array(); //定义一个数组,用于存放当前循环下抓取图片的超链接地址
foreach ($a_out as $k => $v)
{
/**
* 去除超链接中的 空'','#','/'和重复值
* 1: 超链接地址的值 不能等于当前抓取页面的url, 否则会陷入死循环
* 2: 超链接为''或'#','/'也是本页面,这样也会陷入死循环,
* 3: 有时一个超连接地址在一个网页中会重复出现多次,如果不去除,会对一个子页面进行重复下载)
*/
if ( $v[1] && !in_array($v[1],self::$a_url_arr) &&!in_array($v[1],array('#','/',$capture_url) ) )
{
$tmp_arr[]=$v[1];
}
}
foreach ($tmp_arr as $k => $v)
{
//超链接路径地址
if ( strpos($v, 'http://')!==false ) //如果url包含http://,可以直接访问
{
$a_url = $v;
}else //否则证明是相对地址, 需要重新拼凑超链接的访问地址
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$a_url=$domain_url.$v;
}
$this->recursive_download_images($a_url);
}
}
下载所有当前页面
/**
* 下载当前网页下的所有图片
*
* @param String $capture_url 用于抓取图片的网页地址
* @return Array 当前网页上所有图片img标签url地址的一个数组
*/
public function download_current_page_images($capture_url)
{
$content=@file_get_contents($capture_url); //屏蔽warning错误
//匹配img标签src属性中?之前部分的正则
$img_pattern = "|]+src=['" ]?([^ '"?]+)['" >]|U";
preg_match_all($img_pattern, $content, $img_out, PREG_SET_ORDER);
$photo_num = count($img_out);
//匹配到的图片数量
echo ''.$capture_url . "共找到 " . $photo_num . " 张图片";
foreach ($img_out as $k => $v)
{
$this->save_one_img($capture_url,$v[1]);
}
}
保存图片
/**
* 保存单个图片的方法
*
* @param String $capture_url 用于抓取图片的网页地址
* @param String $img_url 需要保存的图片的url
*
*/
public function save_one_img($capture_url,$img_url)
{
//图片路径地址
if ( strpos($img_url, 'http://')!==false )
{
// $img_url = $img_url;
}else
{
$domain_url = substr($capture_url, 0,strpos($capture_url, '/',8)+1);
$img_url=$domain_url.$img_url;
}
$pathinfo = pathinfo($img_url); //获取图片路径信息
$pic_name=$pathinfo['basename']; //获取图片的名字
if (file_exists($this->save_path.$pic_name)) //如果图片存在,证明已经被抓取过,退出函数
{
echo $img_url . '该图片已经抓取过!
';
return;
}
//将图片内容读入一个字符串
$img_data = @file_get_contents($img_url); //屏蔽掉因为图片地址无法读取导致的warning错误
if ( strlen($img_data) > $this->img_size ) //下载size比限制大的图片
{
$img_size = file_put_contents($this->save_path . $pic_name, $img_data);
if ($img_size)
{
echo $img_url . '图片保存成功!
';
} else
{
echo $img_url . '图片保存失败!
';
}
} else
{
echo $img_url . '图片读取失败!
';
}
}
} // END
让我们来看一个完整的函数类。直接保存并引用即可
<p>
php抓取网页所有图片(这篇就是分享给大家的全部内容了,希望大家多多支持网页设计)
网站优化 • 优采云 发表了文章 • 0 个评论 • 66 次浏览 • 2021-09-19 11:20
详情如下:
$hostdir=dirname(__FILE__)."/data/upload/admin/20170517/"; //要读取的文件夹$url = "/data/upload/admin/20170517/"; //图片所存在的目录$filesnames = scandir($hostdir); //得到所有的文件// print_r($filesnames);exit;//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames$www = "http://www.***.com/"; //域名foreach ($filesnames as $name) { $aurl= ""; //图片 echo $aurl . "
"; //输出他}
上面PHP读取文件夹下所有图片和文件的例子是小编共享的所有内容。我希望它能给你一个参考和支持网页设计
标签:PHP读取文件夹中所有图片和文件的实例
易白互联网是中国知名的品牌服务提供商。我们在网站建设、网站制作、网页设计、PHP开发、域名注册和虚拟主机服务方面拥有九年的经验。易白互联网提供的自助站房服务在中国更是家喻户晓。近年来,公司还整合团队优势,自主研发了可视化多用户“顶云建站系统”3.0平台版,拖放排版网站制作设计,轻松实现PC站、移动微网站、applet、app的全网营销网站建设一体化,成功为全国数百家网络公司提供自助平台建设服务。更多信息:标签
上一篇文章:PHP使用glob方法遍历文件夹中的所有文件实例
下一步:PHP使laravel返回JSON rest API的自定义错误
[返回新闻列表] 查看全部
php抓取网页所有图片(这篇就是分享给大家的全部内容了,希望大家多多支持网页设计)
详情如下:
$hostdir=dirname(__FILE__)."/data/upload/admin/20170517/"; //要读取的文件夹$url = "/data/upload/admin/20170517/"; //图片所存在的目录$filesnames = scandir($hostdir); //得到所有的文件// print_r($filesnames);exit;//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames$www = "http://www.***.com/"; //域名foreach ($filesnames as $name) { $aurl= ""; //图片 echo $aurl . "
"; //输出他}
上面PHP读取文件夹下所有图片和文件的例子是小编共享的所有内容。我希望它能给你一个参考和支持网页设计
标签:PHP读取文件夹中所有图片和文件的实例
易白互联网是中国知名的品牌服务提供商。我们在网站建设、网站制作、网页设计、PHP开发、域名注册和虚拟主机服务方面拥有九年的经验。易白互联网提供的自助站房服务在中国更是家喻户晓。近年来,公司还整合团队优势,自主研发了可视化多用户“顶云建站系统”3.0平台版,拖放排版网站制作设计,轻松实现PC站、移动微网站、applet、app的全网营销网站建设一体化,成功为全国数百家网络公司提供自助平台建设服务。更多信息:标签
上一篇文章:PHP使用glob方法遍历文件夹中的所有文件实例
下一步:PHP使laravel返回JSON rest API的自定义错误
[返回新闻列表]