• php抓取网站图片源码


    <?php
    /*完成网页内容捕获功能*/
    function get_img_url($site_name){
        $site_fd = fopen($site_name, "r");
        $site_content = "";
        while (!feof($site_fd)) {
            $site_content .= fread($site_fd, 1024);
        }
       /*利用正则表达式得到图片链接*/
        $reg_tag = '/<img.*?"([^"]*(jpg|bmp|jpeg|gif)).*?>/';
        $ret = preg_match_all($reg_tag, $site_content, $match_result);
        fclose($site_fd);
        return $match_result[1];
    }

    /* 对图片链接进行修正 */
    function revise_site($site_list, $base_site){
        foreach($site_list as $site_item) {
            if (preg_match('/^http/', $site_item)) {
                $return_list[] = $site_item;
            }else{
                $return_list[] = $base_site."/".$site_item;
        }
        }
        return $return_list;
    }

    /*得到图片名字,并将其保存在指定位置*/
    function get_pic_file($pic_url_array, $pos){
        $reg_tag = '/.*/(.*?)$/';
        $count = 0;
        foreach($pic_url_array as $pic_item){
            $ret = preg_match_all($reg_tag,$pic_item,$t_pic_name);
            $pic_name = $pos.$t_pic_name[1][0];
            $pic_url = $pic_item;
        print("Downloading ".$pic_url." ");
            $img_read_fd = fopen($pic_url,"r");
            $img_write_fd = fopen($pic_name,"w");
            $img_content = "";
            while(!feof($img_read_fd)){
                $img_content .= fread($img_read_fd,1024);

            }
            fwrite($img_write_fd,$img_content);
            fclose($img_read_fd);
            fclose($img_write_fd);
            print("[OK] ");
        }
        return 0;
    }

    function main(){
    /* 待抓取图片的网页地址 */
        $site_name = "http://uuhy.com/html/26785.html";
        $img_url = get_img_url($site_name);
        $img_url_revised = revise_site($img_url, $site_name);
        $img_url_unique = array_unique($img_url_revised); //unique array
        get_pic_file($img_url_unique,"./");
    }

    main();
    ?>




  • 相关阅读:
    xhtml中隐藏滚动条
    一个题目包括70种网页制作常用技巧 (转)
    Oracle 数据类型映射 (ADO.NET)
    oracle数据库 数据类型
    VisualSVN Server的配置和使用方法
    oracle 权限管理
    项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
    showModalDialog和showModelessDialog使用心得
    Bug跟踪管理【Bug Trace and Management】
    开发WAP站点之使用PC电脑浏览器访问WAP手机站点 (转)
  • 原文地址:https://www.cnblogs.com/muxiaoye/p/aee95b57846ecc500bda3daab70f9b77.html
Copyright © 2020-2023  润新知