用户协议
PC-排名查询API
获取关键词PC端排名
  • 接口状态:正常
  • 接入服务商: 5118.com
  • 使用人数:283819 人
  • 更新时间:2017-10-16
  • 应用类别: 排名监控
低至: 0.003 元/次 ( 查询1个关键词,计1次调用 )
  • API说明
  • 错误码参照
  • 价格与请求限制
  • 示例代码
详细说明:
  • 接口地址:http://apis.5118.com/morerank/baidupc
  • 返回格式:json
  • 请求方式:POST

步骤一:批量提交查询请求,并获得提取结果ID
请求示例:http://apis.5118.com/morerank/baidupc
提交任务调试工具: Postman示例
提交任务请求参数说明:
名称 类型 必填 默认值 说明
url string 指定的网址
keywords string 指定的关键词,多个用“|”隔开(一次最多能提交50个关键词)
checkrow int 检测行数(前n名),为空默认前50名(最大返回前100名)
提交任务返回参数说明:
名称 类型 默认值 说明
errcode string 0 返回的错误代码
errmsg string 返回的错误说明
taskid int 成功返回的任务ID
提交检测任务JSON返回示例:
{
    "errcode": "0",
    "errmsg": "",
    "data": {
        "taskid": 1
    }
}

步骤二:根据提取结果ID查询数据是否采集完成,如果完成则得到Json格式结果
由于是实时查询,搜索引擎频率限制以及特定时间API访问量大等原因,数据采集返回在1-10分钟。建议提取任务间隔为60s,如有问题或想提升速度,请联系 客服微信
请求示例:http://apis.5118.com/morerank/baidupc
获取检测结果调试工具: Postman示例
获取检测结果请求参数说明:
名称 类型 必填 默认值 说明
taskid int 要检测的任务ID
获取检测结果返回参数说明:
名称 类型 默认值 说明
errcode string 0 返回的错误代码
errmsg string 返回的错误说明
taskid int 当前任务ID
keyword string 监控关键词
search_engine string 搜索引擎:百度PC
collect_count int 关键词收录量
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 5118权重
返回结果排序说明:
指数 倒序
根据任务ID获取结果JSON返回示例:
{
    "errcode": "0",
    "errmsg": "",
    "data": {
        "taskid": XXXXXXX,
        "keywordmonitor": [           
            {
                "keyword": "电脑",
                "search_engine": "baidupc",
                "collect_count": 100000000,
                "ip": "114.102.34.101",
                "area": "湖北省潜江市",
                "network": "电信",
                "ranks": [
                    {
                        "site_url": "www.xxxxxline.com.cn",
                        "rank": 9,
                        "page_title": "XXX电脑网_专业IT门户网站",
                        "page_url": "https://www.xxxxxline.com.cn/",
                        "top100": 18384,
                        "site_weight": "4"
                    },
                    {
                        "site_url": "www.xxxxxline.com.cn",
                        "rank": 22,
                        "page_title": "笔记本_笔记本电脑_XXX电脑网笔记本频道",
                        "page_url": "https://www.xxxxxline.com.cn/notebook",
                        "top100": 18384,
                        "site_weight": "4"
                    }
                ]
                ...
            }
        ]
    }
}
提交充值订单
状态回调配置说明
服务级错误码参照(error_code):
错误码 说明
100101 调用次数不够,请充值
100102 服务每秒调用量超限
100103 服务每小时调用量超限
100104 服务每天调用量超限
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为空
200204 请提交要查询的网址
200301 请提交正确格式的网址
200401 提交关键词的数量已达上限,一次最多能提交50个关键词
200405 请输入要检测的关键词,多个用“|”隔开
错误码格式说明:
2 002 01
服务器错误(1:为系统级别错误) 服务模块代码(即数据ID) 具体错误代码
资费说明:
名称 价格 次数 说明
首次试用套餐 0.00 100
套餐一 100.00 10000
套餐二 500.00 100000
套餐三 2750.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/morerank/baidupc";

/*要提交的数据包*/

$data = "url=www.jd.com&keywords=电器|服装&checkrow=100";

/*CURL方式设置http的请求头*/

$header[] = "Content-type:application/x-www-form-urlencoded";

/*输入你要调用APIAPIKEY*/

$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;

?>

 


  1. using System.Text;
  2. using System.Net;
  3. using System.Net.Security;
  4. using System.Security.Cryptography.X509Certificates;
  5. using Newtonsoft.Json;
  6. using System.Threading;
  7. public class ResultModel
  8. {
  9. public string errcode { get; set; }
  10. public string errmsg { get; set; }
  11. public DataModel data { get; set; }
  12. }
  13. public class DataModel
  14. {
  15. public string taskid { get; set; }
  16. }
  17. private const String host = "http://apis.5118.com";
  18. private const String path = "/morerank/baidupc";
  19. private const String method = "POST";
  20. private const String apikey = "你要调用的接口apikey";
  21. private void Form1_Load(object sender, EventArgs e)
  22. {
  23. String querys = "";
  24. String bodys = "url=url&keywords=keywords&checkrow=checkrow";
  25. String url = host + path;
  26. string str = SendPost(querys, bodys, url);
  27. Console.WriteLine(str);
  28. Console.WriteLine("\n");
  29. ResultModel model = JsonConvert.DeserializeObject<ResultModel>(str);
  30. while (true)
  31. {
  32. if (!string.IsNullOrEmpty(model.data.taskid))
  33. {
  34. bodys = "taskid=taskid";
  35. string jsonStr = SendPost(querys, bodys, url);
  36. Console.WriteLine(jsonStr);
  37. break;
  38. }
  39. else
  40. {
  41. Thread.Sleep(60000);
  42. str = SendPost(querys, bodys, url);
  43. model = JsonConvert.DeserializeObject<ResultModel>(str);
  44. }
  45. }
  46. }
  47. private static string SendPost(string querys, string bodys, string url)
  48. {
  49. HttpWebRequest httpRequest = null;
  50. HttpWebResponse httpResponse = null;
  51. if (0 < querys.Length)
  52. {
  53. url = url + "?" + querys;
  54. }
  55. if (host.Contains("https://"))
  56. {
  57. ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
  58. httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
  59. }
  60. else
  61. {
  62. httpRequest = (HttpWebRequest)WebRequest.Create(url);
  63. }
  64. httpRequest.Method = method;
  65. httpRequest.Headers.Add("Authorization", apikey);
  66. //根据API的要求,定义相对应的Content-Type
  67. httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
  68. if (0 < bodys.Length)
  69. {
  70. byte[] data = Encoding.UTF8.GetBytes(bodys);
  71. using (Stream stream = httpRequest.GetRequestStream())
  72. {
  73. stream.Write(data, 0, data.Length);
  74. }
  75. }
  76. try
  77. {
  78. httpResponse = (HttpWebResponse)httpRequest.GetResponse();
  79. }
  80. catch (WebException ex)
  81. {
  82. httpResponse = (HttpWebResponse)ex.Response;
  83. }
  84. Console.WriteLine(httpResponse.StatusCode);
  85. Console.WriteLine(httpResponse.Method);
  86. Console.WriteLine(httpResponse.Headers);
  87. Stream st = httpResponse.GetResponseStream();
  88. StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
  89. return reader.ReadToEnd();
  90. }
  91. public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
  92. {
  93. return true;
  94. }
推荐API
百亿长尾词库,含指数和搜索量
获取域名(含子域名)PC端排名词

系统通知