前面发过《百度Site查询接口源码》,今天再发一个百度关键词排行接口源码,其实原理都差不多,都是使用curl百度之后正则寻找文本,进行的计算。原作者不是我。
<?php /** * 百度关键词排行接口 * @author 原作者肯定不是Youngxj * @time 2018年6月14日 * @code 200->正常 */ // 关键词 @$k=$_GET['k'] ? $_GET['k'] : '杨小杰博客'; // 域名0 @$u=$_GET['u'] ? $_GET['u'] : 'blog.youngxj.cn'; // 百度搜索默认参数 $rn='50'; // 百度查询地址 $url = "https://www.baidu.com/s?ie=utf-8&wd=".$k."&rn=".$rn; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); $res = curl_exec($ch); $rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); preg_match_all('/<div class=\"f13\">(.*?)<\/div>/si', $res, $p); for ($ii = 0; $ii < COUNT($p[1]); $ii++){ $pos=strpos($p[1][$ii],$u); // 循环判断是否有域名关键词 if(is_integer($pos)){ $rn= $ii+1; break; } } // 输出json格式 echo json_encode(array('code'=>'200','url'=>$u,'keyword'=>$k,'rank'=>$rn)); ?>
发表评论: