杨小杰博客提供免费教程下载和网站搭建技术教程,主要分享和发布网站源码,致力创造一个高质量网络资源教程的分享平台

远程采集接口图片案例

Young小杰2018-6-7 17:20网站搭建 (24)615已提交到百度小标签: 技术教程 api 源码分享 原创

刚才逛小诗梦博客的时候看到他发布了一个随机图的接口,访问了一下,哇,全是小姐姐,所以果断采集了,顺便把采集源码发出来,让他们的图变成自己的图(/大笑)

远程采集接口图片案例


<?php
/**
 * 随机图片远程采集案例
 * @author Youngxj <blog@youngxj.cn>
 * @url    http://www.youngxj.cn
 * @time   2018-06-09
 */
header('Content-type: application/json');

//图片接口地址(这里又要拿小诗梦开刀了)
$url = 'https://cdn.mom1.cn/?mom=302';
// 图片存放文件夹
$path = 'images/';
//获取图片真实地址
$url = url_get($url);
//获取文件名
$filenames = basename($url);

$file_c = $path.$filenames;

if(file_exists($file_c)){
  //文件已经存在
  echo json_encode(array('url'=>$url,'filename'=>$filenames,'state'=>'202'));
}else{
  if(download($url,$path)){
    //采集成功
    echo json_encode(array('url'=>$url,'filename'=>$filenames,'state'=>'200'));
  }else{
    //采集失败
    echo json_encode(array('url'=>$url,'filename'=>$filenames,'state'=>'201'));
  }

}


function url_get($url){
  // 获取图片真实地址
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_VERBOSE, true);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_NOBODY, true);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  // 下面两行为不验证证书和 HOST,建议在此前判断 URL 是否是 HTTPS
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  // $ret 返回跳转信息
  $ret = curl_exec($ch);
  // $info 以 array 形式返回跳转信息
  $info = curl_getinfo($ch);

  // 记得关闭curl
  curl_close($ch);
  // 跳转后的 URL 信息
  return $info['url'];
}

function download($url, $path = 'images/')
{
  //远程下载保存
  if (! file_exists ( $path )) {
    mkdir ( "$path", 0777, true );
  }
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  $file = curl_exec($ch);
  curl_close($ch);
  $filename = pathinfo($url, PATHINFO_BASENAME);
  $resource = fopen($path . $filename, 'a');
  fwrite($resource, $file);
  fclose($resource);
  return true;
}
2018-06-09:修复windows采集图片为0字节的问题。



评论排行榜

(切勿水评,一经发现封IP)

评论:

a^寒韵 Google Chrome 57.0.2987.132 Linux云南省曲靖市 移动 2018-06-08 23:04
图片还是有点少了,不够
Young小杰四川省成都市 电信 2018-06-08 23:07
@a^寒韵:找个多点的慢慢采集
老李博客 Google Chrome 53.0.2785.104 Windows 7广东省惠州市 电信 2018-06-08 20:15
采集的都是坏的,咋办
Young小杰四川省 联通 2018-06-08 20:20
@老李博客:人品不行呗,我反复测试都没有问题
梦奴 Google Chrome 55.0.2883.87 Windows 7广东省深圳市福田区 电信 2018-06-08 18:59
采集的图片不能打开
Young小杰四川省成都市 电信 2018-06-08 19:09
@梦奴:经过我反复测试,都没有问题,自己检查一下吧
Young小杰四川省成都市 电信 2018-06-09 10:47
@梦奴:已修复,重新复制代码即可
梦奴Google Chrome 55.0.2883.87 Windows 7广东省深圳市 电信 2018-06-09 15:20
@Young小杰:还是一样,采集的图片只有160B
Young小杰四川省成都市 电信 2018-06-09 15:33
@梦奴:那你估计费了
梦奴 Google Chrome 55.0.2883.87 Windows 7广东省深圳市福田区 电信 2018-06-08 18:58
采集到的图片损坏
Young小杰四川省 联通 2018-06-08 18:59
@梦奴:你们运气不行啊
梦奴Google Chrome 55.0.2883.87 Windows 7广东省深圳市福田区 电信 2018-06-08 19:05
@Young小杰:怎么重复运行?
Young小杰四川省成都市 电信 2018-06-08 19:06
@梦奴:使用监控,或者自己加循环代码
梦奴Google Chrome 55.0.2883.87 Windows 7广东省深圳市福田区 电信 2018-06-08 19:06
@Young小杰:怎么重复运行呢?
小智 Google Chrome 56.0.2924.90 Windows 7广东省揭阳市 电信 2018-06-08 11:43
OωO求api,用来做网站背景
Young小杰四川省成都市 电信 2018-06-08 13:22
@小智:网上一堆。百度一下
Mr.白锌 Google Chrome 53.0.2785.104 Windows 7湖南省邵阳市 电信 2018-06-07 19:40
采集后麻烦打包一份给我,谢谢o(*////▽////*)q
Young小杰四川省成都市 联通 2018-06-07 19:43
@Mr.白锌:自己动手丰衣足食
剑客网 Google Chrome 55.0.2883.87 非主流操作系统江苏省镇江市 电信 2018-06-07 19:18
杨小姐你从没忘记你的微笑
就算你和我一样 渴望着衰老
杨小姐你嘴角向下的时候很美
就像安和桥下 清澈的水
.......
开个玩笑哈
龙行博客 Google Chrome 67.0.3396.79 非主流操作系统四川省成都市 电信 2018-06-07 18:27
嗯是 NP
大米博客 SouGou Browser 2.X Windows 7河南省新乡市 移动 2018-06-07 17:58
嗯。我决定把每天的飞机都给这个小姐姐,不给其她的小姐姐了
Young小杰四川省成都市 电信 2018-06-07 18:01
@大米博客:少年不知金(jing)子(zi)贵,老汉看了两行泪
晓超云博客Google Chrome 57.0.2987.132 Linux陕西省西安市 联通 2018-06-07 18:22
@Young小杰:话里有话
整形运营 Google Chrome 55.0.2883.87 Windows 7安徽省蚌埠市 电信 2018-06-07 17:35
杨小姐出品,必属精品。

发表评论: