| 名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| keywords | string | 是 | 指定的关键词,多个用“|”隔开(一次最多能提交50个关键词) | |
| checkrow | int | 否 | 检测行数(前n名),为空默认前50名(最大返回前100名) |
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| errcode | string | 0 | 返回的错误代码 |
| errmsg | string | 返回的错误说明 | |
| taskid | int | 成功返回的任务ID |
{
"errcode": "0",
"errmsg": "",
"data": {
"taskid": 1
}
}
| 名称 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| taskid | int | 是 | 要检测的任务ID |
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| errcode | string | 0 | 返回的错误代码 |
| errmsg | string | 返回的错误说明 | |
| taskid | int | 当前任务ID | |
| keyword | string | 监控关键词 | |
| search_engine | string | 搜索引擎:百度移动 | |
| ip | string | 查询IP | |
| area | string | 查询IP所在地区 | |
| network | string | 查询IP所在网络 | |
| site_url | string | 网站域名 | |
| rank | int | 排名 | |
| page_title | string | 页面标题 | |
| page_url | string | 页面链接地址 | |
| top100 | int | 网站域名在5118中的Top100关键词排名数量 | |
| site_weight | string | 网站权重 |
{
"errcode": "0",
"errmsg": "",
"data": {
"taskid": 83260,
"keyword_monitor": [
{
"keyword": "电器",
"search_engine": "baidumobile",
"ip": "117.81.231.247",
"area": null,
"network": null,
"ranks": [
{
"site_url": "baike.baidu.com",
"rank": 1,
"page_title": "电器_百度百科",
"page_url": "http://baike.baidu.com/item/电器/2640?fr=aladdin",
"top100": 2260758,
"site_weight": "10+"
},
{
"site_url": "image.baidu.com",
"rank": 2,
"page_title": "电器_百度图片",
"page_url": "http://image.baidu.com/search/wiseala?tn=wiseala&ie=utf8&word=电器&needpersonalized=0&haspersonalized=0&fr=alawise&pos=1&stdstl=2&tp=strong",
"top100": 1007459,
"site_weight": "10+"
}
...
]
}
}
| 错误码 | 说明 |
|---|---|
| 100101 | 调用次数不够,请充值 |
| 100102 | 服务每秒调用量超限 |
| 100103 | 服务每小时调用量超限 |
| 100104 | 服务每天调用量超限 |
| 100111 | 调用字数不够,请充值 |
| 100201 | url无法解析 |
| 100202 | 请求缺少apikey |
| 100203 | 无效的apikey |
| 100204 | api不存在 |
| 100205 | api已经关闭 |
| 100206 | 后端服务响应status非200 |
| 100207 | 后端服务未正确接入 |
| 100208 | 请求方式不支持 |
| 100301 | Api商城 内部错误 |
| 100302 | 请求后端服务过程中错误 |
| 100303 | 系统繁忙稍候再试 |
| 100403 | 您输入的apikey不正确 |
| 错误码 | 说明 |
|---|---|
| 200107 | 服务器超时 |
| 200201 | 传进参数为空 |
| 200202 | 用户ID为空 |
| 200401 | 提交关键词的数量已达上限,一次最多能提交50个关键词 |
| 200405 | 请输入要检测的关键词,多个用“|”隔开 |
| 20040501 | 某关键词长度超过了指定的字符串长度 |
| 20040502 | 如输入多个关键词时请用“|”进行分隔 |
| 2 | 002 | 01 |
|---|---|---|
| 服务器错误(1:为系统级别错误) | 服务模块代码(即数据ID) | 具体错误代码 |
| 名称 | 价格 | 次数 | 说明 |
|---|---|---|---|
| 首次试用套餐 | 0.00 | 100 | |
| 套餐一 | 200.00 | 10000 | |
| 套餐二 | 800.00 | 100000 | |
| 套餐三 | 3200.00 | 1000000 |
<?php
header("Content-type:text/html; charset=utf-8");
/*参数1:请求的URL;参数2:以CURL方式设置http的请求头;参数3:要提交的数据包*/
function doCurlPostRequest($url,$header,$data){
$ch = curl_init();
/*请求地址*/
curl_setopt($ch, CURLOPT_URL, $url);
/*以CURL方式设置http的请求头*/
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
/*文件流形式*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
/*发送一个常规的Post请求*/
curl_setopt($ch, CURLOPT_POST, 1);
/*Post提交的数据包*/
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
return curl_exec($ch);
}
/*请求的URL*/
$url = "http://apis.5118.com/keywordrank/baidumobile";
/*要提交的数据包*/
$data = "keywords=电器|服装&checkrow=100";
/*以CURL方式设置http的请求头*/
$header[] = "Content-type:application/x-www-form-urlencoded";
/*输入你要调用API的APIKEY*/
$header[] = "Authorization: APIKEY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
/*调用CURL POST函数*/
$result=doCurlPostRequest($url,$header,$data);
/*对 JSON 格式的字符串进行解码,并转换为 PHP 变量*/
$json = json_decode($result);
/*errcode=0 正确返回 errcode=200104 数据采集中*/
$errcode = $json->errcode;
$errmsg = $json->errmsg;
if ($errcode != "0" && $errmsg != "") {
/*非正确返回*/
print_r($result);
exit;
}
/*提交查询请求后获取提取结果的任务ID*/
$taskid = $json->data->taskid;
if ($taskid != "") {
/*要提交的数据包*/
$data = "taskid=".$taskid;
/*调用CURL POST函数*/
$result = doCurlPostRequest($url,$header,$data);
$json = json_decode($result);
$errcode = $json->errcode;
$errmsg = $json->errmsg;
/*errcode=200104 数据采集中*/
if ($errcode == "200104" && $errmsg =="数据采集中") {
while(true){
sleep(5);
/*调用CURL POST函数*/
$result = doCurlPostRequest($url,$header,$data);
$errcode = $json->errcode;
$errmsg = $json->errmsg;
/*errcode=0 正确返回*/
if ($errcode == "0" && $errmsg == "") {
print_r($result);
/*退出当前的脚本*/
exit;
}
}
}
else {
/*返回数据结果*/
print_r($result);
}
}
else {
/*返回异常或其它信息*/
print_r($result);
}
/*退出当前的脚本*/
exit;
?>
using System.Text;using System.Net;using System.Net.Security;using System.Security.Cryptography.X509Certificates;using Newtonsoft.Json;using System.Threading;public class ResultModel{public string errcode { get; set; }public string errmsg { get; set; }public DataModel data { get; set; }}public class DataModel{public string taskid { get; set; }}private const String host = "http://apis.5118.com";private const String path = "/keywordrank/baidumobile";private const String method = "POST";private const String apikey = "你要调用的接口apikey";private void Form1_Load(object sender, EventArgs e){String querys = "";String bodys = "keywords=keywords&checkrow=checkrow";String url = host + path;string str = SendPost(querys, bodys, url);Console.WriteLine(str);Console.WriteLine("\n");ResultModel model = JsonConvert.DeserializeObject<ResultModel>(str);while (true){if (!string.IsNullOrEmpty(model.data.taskid)){bodys = "taskid=taskid";string jsonStr = SendPost(querys, bodys, url);Console.WriteLine(jsonStr);break;}else{Thread.Sleep(60000);str = SendPost(querys, bodys, url);model = JsonConvert.DeserializeObject<ResultModel>(str);}}}private static string SendPost(string querys, string bodys, string url){HttpWebRequest httpRequest = null;HttpWebResponse httpResponse = null;if (0 < querys.Length){url = url + "?" + querys;}if (host.Contains("https://")){ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));}else{httpRequest = (HttpWebRequest)WebRequest.Create(url);}httpRequest.Method = method;httpRequest.Headers.Add("Authorization", apikey);//根据API的要求,定义相对应的Content-TypehttpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";if (0 < bodys.Length){byte[] data = Encoding.UTF8.GetBytes(bodys);using (Stream stream = httpRequest.GetRequestStream()){stream.Write(data, 0, data.Length);}}try{httpResponse = (HttpWebResponse)httpRequest.GetResponse();}catch (WebException ex){httpResponse = (HttpWebResponse)ex.Response;}Console.WriteLine(httpResponse.StatusCode);Console.WriteLine(httpResponse.Method);Console.WriteLine(httpResponse.Headers);Stream st = httpResponse.GetResponseStream();StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));return reader.ReadToEnd();}public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors){return true;}