如何去配置Apis.php文件看这里,复制下面代码替换接口链接就可以了
<?php namespace app\api\controller; /** * 解析接口配置 * Class Apis * @package app\api\controller */ class Apis extends Controller
{
public function analysis($videoUrl) {
try { // 定义需要轮询的接口列表
$apiList = [ [ 'url' => '请复制接口到这个地方替换',
'timeout' => 2, // 设置超时时间(以秒为单位)
'code' => '200', // 接口返回状态码
'msg' => 'msg', // 接口返回提示信息
'title' => 'title', // 文案
'cover' => 'cover',// 封面
'images' => 'images',// 图集
'video' => 'url',// 视频
]
];
$errmsg = '去水印解析失败,请联系管理员!!!';
foreach ($apiList as $api) {
// 发送请求
$response = $this->sendRequest($api['url'] . $videoUrl, $api['timeout']);
// 检查是否请求成功
if ($response !== false) {
$data = json_decode($response, true);
if (empty($data)){
continue; // 继续下一次循环,切换到下一个接口
}
if ($data['code'] == $api['code']) {
// 判断解析返回接口的数据是否在 data 里面
if (!empty($data['data'])) {
$data = $data['data'];
}
// 定义新的数据格式
$reData = [
"title" => $data[$api['title']], // 将分享文案存入 reData
"cover" => $data[$api['cover']] // 将封面链接存入
];
// 判断当前是否在解析视频
if (empty($data[$api['images']]) || $data[$api['images']] == "" || $data[$api['images']] == null) {
// 拿到真实链接并存入视频链接
$reData['video'] = $this->getUrl302($data[$api['video']]);
} else {
// 存入图集
$reData['images'] = $data[$api['images']];
}
return [
"code" => 200,
"data" => $reData, // reData 就是上面设置存入的数据
"msg" => "解析成功"
];
} else {
// 返回的接口错误提示信息,如不需要可注释掉
$errmsg = $data[$api['msg']];
continue; // 继续下一次循环,切换到下一个接口
}
}
}
return [
"code" => -1,
"data" => null,
"msg" => $errmsg
];
} catch (\Exception $e) {
return [
"code" => -1,
"data" => null,
"msg" => "解析失败,程序代码出错了"
];
}
}
private function sendRequest($url, $times = 5)
{
$header = ['User-Agent:Mozilla/5.0 (Linux; U; Android 9; zh-cn; Redmi Note 5 Build/PKQ1.180904.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.10.8'];
$con = curl_init((string)$url);
curl_setopt($con, CURLOPT_HEADER, false);
curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($con, CURLOPT_RETURNTRANSFER, true);
curl_setopt($con, CURLOPT_HTTPHEADER, $header);
curl_setopt($con, CURLOPT_TIMEOUT, $times);
$result = curl_exec($con);
if ($result === false) {
return false;
}
curl_close($con);
return $result;
}
function getUrl302($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$header = array('User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
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);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$info = curl_getinfo($ch);
curl_close($ch);
return $info['url'];
}
/**
* 抖音用户主页批量解析
* 一个很辣鸡的方式实现的,需要定期更换cookie,因为我不会js逆向,所以只能这样了!
* 开心锤锤 https://v.douyin.com/rMQc2cD/
* 抖音已验证cookie获取方法是浏览器使用手机端模拟访问,找到这个接口的cookie (https://m.douyin.com/web/api/v2/aweme/post/)
* @param $url
* @param int $times
* @return array
*/
public function batch($url, $times = 0)
{
return $this->renderError("批量解析接口维护中");
}
}
评论列表()