名称 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
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 | 搜索引擎:百度PC | |
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": 83258, "keyword_monitor": [ { "keyword": "电脑", "search_engine": "baidupc", "ip": "121.227.203.148", "area": null, "network": null, "ranks": [ { "site_url": "tieba.baidu.com", "rank": 1, "page_title": "电脑吧_百度贴吧", "page_url": "http://tieba.baidu.com/f?kw=μ???&fr=ala0&tpl=5", "top100": 2816018, "site_weight": "10-" }, { "site_url": "www.pconline.com.cn", "rank": 2, "page_title": "太平洋电脑网_专业IT门户网站", "page_url": "http://www.pconline.com.cn/", "top100": 45255, "site_weight": "9" }, ... ] } }
错误码 | 说明 |
---|---|
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/baidupc";
/*要提交的数据包*/
$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/baidupc";
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-Type
httpRequest.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;
}