zoukankan      html  css  js  c++  java
  • 远程抓取图片

    本方法只对部分网站图片采集有效

    ini_set("max_execution_time", "45");//设置最大脚本执行时间
    $file = file_get_contents("http://www.lanrentuku.com/tupian/dongwutupian/");
    $preg = "/src=.+/";
    preg_match_all($preg, $file, $img); //全文匹配
    foreach ($img[0] as $v) {
        $preg = "/"http://.+.(jpg|png|jpeg)"/";//二次匹配获取图片
        preg_match($preg, $v, $png);
        if (!empty($png[0])) {
            //将图片下载到本地
            $http = $png[0];
            $http =str_replace('"', '', $http);//替换'"'
            $resouce = file_get_contents($http);
            $suffix = substr($http, strlen($http) - 4);//图片类型截取
            $file_name = date('YmdHis') . 'img' . rand(0, 1000);
            file_put_contents( './uploads/img/'.$file_name . '.' . $suffix, $resouce);//保存图片
        }
    }

    正则匹配函数

    preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

      $matches[0] 将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。

      注意:在第一次匹配成功后 将会停止搜索

    preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

      结果排序为 $matches[0] 保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。 

      注意:匹配所有符合要求的结果

  • 相关阅读:
    JSTL 标签库
    C++(一)— stringstream的用法
    深度学习—反向传播的理解
    深度学习—线性分类器理解
    Python—numpy.bincount()
    Python—numpy.argsort()
    Python—numpy.flatnonzero()
    C++(零)— 提高程序运行效率
    机器学习(八)—GBDT 与 XGBOOST
    机器学习(七)—Adaboost 和 梯度提升树GBDT
  • 原文地址:https://www.cnblogs.com/zc123/p/5436493.html
Copyright © 2011-2022 走看看