您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

网页抓图

2024/5/4 9:18:13发布48次查看
_save_path = $_save_path; $this->_limit_size = $_limit_size; } public function get_all_page_image( $site_url ) { if ( $site_url == '' ) { return false; } if ( ! in_array( $site_url, self::$_a_page_url ) ) { //判断当前页面是否抓取过 self::$_a_page_url[] = $site_url; //将超链接存入静态数组中 } else { return; //若抓取过则跳出 } $this->download_the_page_image( $site_url ); $content = @file_get_contents($site_url); $a_page_url = |]+href=['\ ]?([^ '\?]+)['\ >]|u; $all_url = array(); preg_match_all( $a_page_url, $content, $all_url, preg_set_order ); if ( $all_url != null ) { foreach( $all_url as $key => $val ) { /** * 静态化超链接,防止进入死循环 * 出去当前页面链接表示方式('','#','/') */ if ( trim($val[1]) != '' && ! in_array( $val[1], self::$_a_page_url ) && ! in_array( $val[1], array('#','/',$site_url) ) ) { self::$_a_page_url[] = $val[1]; //将符合要求的超链接写入静态数组中 } } } if ( self::$_a_page_url != null ) { foreach( self::$_a_page_url as $keys => $vals ) { if ( strpos( $vals, 'http://' ) === false ) { //超链接不包含http://时,不能直接访问 // 当图片链接地址为相对地址是重新拼凑地址 $a_domain_url = substr( $site_url, 0, strpos( $site_url, '/',8 ) + 1 ); $a_img_url = $a_domain_url.$vals; } //递归调用,访问每一个超链接页面 $this->get_all_page_image( $a_img_url ); } } } /** * 下载当前页面下的所有图片链接 * @param $site_url */ public function download_the_page_image( $site_url ) { // 获取当前链接地址页面的所有内容 $img_pattern = null; $content = @file_get_contents( $site_url ); $img_pattern = |]+src=['\ ]?([^ '\?]+)['\ >]|u; //全局匹配所有的中的图片链接 $img_out = array(); preg_match_all( $img_pattern, $content, $img_out, preg_set_order ); echo ''. $site_url . '共找到' . count($img_out) . '张图片'; //print_r($img_out[1]); foreach( $img_out as $key => $val ) { //echo htmlspecialchars($val[1]).'
'; $this->save_one_image( $site_url, $val[1]); } } public function save_one_image( $site_url, $img_url ) { if ( strpos( $img_url, 'http://' ) === false ) { // 当图片链接地址为相对地址是重新拼凑地址 $domain_url = substr( $site_url, 0, strpos( $site_url, '/',8 ) + 1 ); $img_url = $domain_url.$img_url; } $pic_name = basename( $img_url ); //获取图片名称 if ( in_array( $img_url, self::$_img_url_old ) ) { echo $img_url .'该图片已经抓取过!
'; return; } //获取图片内容,并写入一个字符串 $img_data = @file_get_contents( $img_url ); if ( strlen($img_data) _limit_size ) { //图片大小在限制范围内 $img_boo = @file_put_contents( $this->_save_path.md5(microtime()).$pic_name, $img_data ); if ( $img_boo ) { echo $img_url .'图片保存成功!
'; self::$_img_url_old[] = $img_url; } else { echo $img_url .'图片保存失败!
'; } } else { echo $img_url .'图片大小在限制范围之外!
'; } }}set_time_limit(0);$download_images = new download_image('surces_img/',1024*1024*100);$download_images->get_all_page_image('http://www.22mm.cc/');?>
复制代码
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product