帮朋友写的小工具,后来用不上我就直接帖出来了,信息挺多的 需要的朋友可以拿来用用
<?php
/**
* 获取抖音作品 用户信息
* User: 皮皮赖(https://www.52bz.la)
* Date: 2019/9/14 0014
* Time: 4:58
*/
//curl
function curl($url, $ref = 'https://www.52bz.la')
{
$ch = curl_init();
$ip = rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255) . '.' . rand(0, 255); // 百度蜘蛛
$timeout = 15;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_REFERER, $ref);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:' . $ip . '', 'CLIENT-IP:' . $ip . ''));
curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4 (compatible; Baiduspider/2.0; +https://www.52bz.la)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$content = curl_exec($ch);
$link = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
return ['data' => $content, 'url' => $link];
}
//个人中心信息匹配
function woff()
{
$codes = [
"" => "0", "" => "0", "" => "0",
"" => "1", "" => "1", "" => "1",
"" => "2", "" => "2", "" => "2",
"" => "3", "" => "3", "" => "3",
"" => "4", "" => "4", "" => "4",
"" => "5", "" => "5", "" => "5",
"" => "6", "" => "6", "" => "6",
"" => "7", "" => "7", "" => "7",
"" => "8", "" => "8", "" => "8",
"" => "9", "" => "9", "" => "9"
];
return $codes;
}
//删除多余html
function noHTML($content)
{
$content = preg_replace("/<a[^>]*>/i", '', $content);
$content = preg_replace("/<\/a>/i", '', $content);
$content = preg_replace("/<div[^>]*>/i", '', $content);
$content = preg_replace("/<\/div>/i", '', $content);
$content = preg_replace("/<font[^>]*>/i", '', $content);
$content = preg_replace("/<\/font>/i", '', $content);
$content = preg_replace("/<p[^>]*>/i", '', $content);
$content = preg_replace("/<\/p>/i", '', $content);
$content = preg_replace("/<i[^>]*>/i", '', $content);
$content = preg_replace("/<\/i>/i", '', $content);
$content = preg_replace("/<span[^>]*>/i", '', $content);
$content = preg_replace("/<\/span>/i", '', $content);
$content = preg_replace("/<\?xml[^>]*>/i", '', $content);
$content = preg_replace("/<\/\?xml>/i", '', $content);
$content = preg_replace("/<o:p[^>]*>/i", '', $content);
$content = preg_replace("/<\/o:p>/i", '', $content);
$content = preg_replace("/<u[^>]*>/i", '', $content);
$content = preg_replace("/<\/u>/i", '', $content);
$content = preg_replace("/<b[^>]*>/i", '', $content);
$content = preg_replace("/<\/b>/i", '', $content);
$content = preg_replace("/<meta[^>]*>/i", '', $content);
$content = preg_replace("/<\/meta>/i", '', $content);
$content = preg_replace("/<!--[^>]*-->/i", '', $content);//注释内容
$content = preg_replace("/<p[^>]*-->/i", '', $content);//注释内容
$content = preg_replace("/style=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/class=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/id=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/lang=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/width=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/height=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/border=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/face=.+?['|\"]/i", '', $content);//去除样式
$content = preg_replace("/face=.+?['|\"]/", '', $content);
$content = preg_replace("/face=.+?['|\"]/", '', $content);
$content = str_replace(" ", "", $content);
return $content;
}
//获取信息
function user_data($url)
{
$data = curl($url);
preg_match('/itemId: "(.*?)"/', $data['data'], $itemId);
preg_match('/dytk: "(.*?)"/', $data['data'], $dytk);
preg_match('/uid: "(.*?)"/', $data['data'], $myuid);
$url_data['itemId'] = $itemId[1];
$url_data['dytk'] = $dytk[1];
$json_data = curl('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' . $url_data['itemId'] . '&dytk=' . $url_data['dytk']);
$arr_data = json_decode($json_data['data'], 1);
if ($arr_data['status_code'] != 0) {
return json_encode(['code' => 404, 'msg' => '出现未知错误!']);
}
$info['data']['user']['id'] = $myuid[1];
$info['data']['works']['url'] = $data['url'];
$info['data']['works'] = $arr_data['item_list'];
$user_html = curl('https://www.iesdouyin.com/share/user/' . $info['data']['user']['id']);
preg_match('/<p class="follow-info">(.*?)<\/p/', $user_html['data'], $user_data);
preg_match('/<p class="nickname">(.*?)<\/p/', $user_html['data'], $user_name);
$info['data']['user']['name'] = $user_name[1];
$user_data_val = noHTML($user_data[1]);
foreach (woff() as $k => $v) {
$user_data_val = str_replace($k, $v, $user_data_val);
}
$user_data_val = str_replace(' ', '', $user_data_val);
preg_match('/(.*?)关注/', $user_data_val, $focus);
preg_match('/关注(.*?)粉丝/', $user_data_val, $fans);
preg_match('/粉丝(.*?)赞/', $user_data_val, $praise);
$info['data']['user']['focus'] = $focus[1];
$info['data']['user']['fans'] = $fans[1];
$info['data']['user']['praise'] = $praise[1];
return json_encode($info, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
}
echo user_data('http://v.douyin.com/axXGn2/');