本文来源于:得水小筑
说明
百度站长的资源提交分为快速收入和普通收录,资源的提交方式有:
- API推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
- sitemap:您可以定期将网站链接放到Sitemap中,然后将Sitemap提交给百度。百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于API推送。
- 手动提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度
多种提交方式互不冲突
下面以PHP为例子
百度官方api示例
$urls = array(
'http://www.example.com/1.html',
'http://www.example.com/2.html',
);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
上面代码是百度的示例这里我们改一下,官方提供的有点麻烦需要我们手动把收录的链接放到数组里面
下面我们让在用户访问后自动提交收录,通过api自动提交
百度 API 提交token 值的获取
登录百度站长 → 资源提交 → 普通收录,下面图片中’token=’的后面就是我们自己的API token值,将其复制下来
官网地址:http://data.zz.baidu.com/
百度推广API的token获取地址:http://data.zz.baidu.com/site/index
自己修改后的
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//获取当前访问目录的域名
// echo $url;
$urls = array($url);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo "<script>console.log('当前百度推送$result;')</script>";
使用的时候,把上面的域名跟百度的token换成自己的,下面是以Pbootcms建筑系统为例子
扩展到Pbootcms建站系统例子
{php}
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//获取当前访问目录的域名
// echo $url;
$urls = array($url);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo "<script>console.log('当前百度推送$result;')</script>";
{/php}
这样我们就实现了PHP对接百度API提交普通收录
.
状态码为200,可能返回以下字段:
字段 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
success | 是 | int | 成功推送的url条数 |
remain | 是 | int | 当天剩余的可推送url条数 |
not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |
not_valid | 否 | array | 不合法的url列表 |