一个简单的爬虫

<?php   
	function GrabImage($url,$ext){
		if(substr($url,0,4) != 'http'){//如果图片的加载地址不是http开头的则返回false
			 return false;
		}
		if($ext != ".jpg" && $ext != ".bmp" && $ext != ".png" && $ext != ".jpeg"){//筛选图片类型
		 echo "格式不支持!";
		 return false;
		}
		$filename = './'.time().$ext;//以当前时间戳命名保存图片
		//开始保存
		ob_start(); 
		readfile($url); 
		$img = ob_get_contents(); 
		ob_end_clean(); 
		$size = strlen($img); 
		$fp = fopen($filename , "a"); 
		fwrite($fp, $img); 
		fclose($fp);
		sleep(1);//延时1秒,防止时间戳一致导致图片命名重复
		return $filename; 
	} 	

        $url = "https://www.baidu.com/";//目标网址
        $html = file_get_contents($url);
        preg_match_all("/\"[^\"]*[^0]\.(?:png|jpg|bmp|jpeg)\"/", $html, $text);//爬图片的正则表达式
        foreach ($text as $key => $value) {
            foreach ($value as $img) {//$img为图片的加载地址,含有双引号;	
                echo "<img src=" . $img . " />";			
				$key++;
				$img = substr($img,1,-1);//将$img中的双引号去掉
				$ext = strrchr($img, '.');//获取图片的类型(.png|.jpg|.bmp|.jpeg)
				GrabImage($img,$ext);//保存图片
				
            }
        }

?>

注意将php.ini文件中的extension=openssl前面的分号去掉;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值