【www.bbyears.com--Access】
注意:只有获得sitemap权限的站长才可以进行这个操作,否则你没有access_token密私是无法提交的。
1.进入之后如下图所示我们会看到如下界面
下面有一个官方举例的一个curl推荐地址
curl -H "Expect:" --data-binary @thread.xml "http://ping.baidu.com/sitemap?site=www.111cn.net&resource_name=sitemap&access_token=你的key"
使用php、python、java等可以参照这个过程推送结构化数据。
返回结果为200,下面小编以php的curl实现post的为例子,代码如下
function tobaidu($url){
$ntime=time();
$now=date("Y-m-d",$ntime);
$data="";
$data.="
$data.="
$data.="
$data.="
$data.="
$data.="
$data.="
$data.="
$pingurl="http://ping.baidu.com/sitemap?site=www.111cn.net&resource_name=sitemap&access_token=你的key值";//你的接口地址
$curl= curl_init();// 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL,$pingurl);// 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);// 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);// 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT,"curl/7.12.1");// 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_COOKIE,$cookie);
curl_setopt($curl, CURLOPT_REFERER,"");
curl_setopt($curl, CURLOPT_POST, 1);// 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS,$data);// Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30);// 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0);// 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);// 获取的信息以文件流的形式返回
$tmpInfo= curl_exec($curl);// 执行操作
if(curl_errno($curl)) {
echo"Errno".curl_error($curl);//捕抓异常
}
curl_close($curl);// 关闭CURL会话
return$tmpInfo;// 返回数据
}
$tt= tobaidu("http://www.111cn.net/"); //实时推送新发文章的url
echo $tt;
?>
提交之后返回结果
代码如下
注意只有返回200状态代码才代码提交成功了,下面看看状态代码
200 无使用方式错误,需要进一步观察返回的内容是否正确
400 必选参数未提供
405 不支持的请求方式,我们只支持POST方式提交数据
411 HTTP头中缺少Content-Length字段
413 推送的数据过大,超过了10MB的限制
422 HTTP头中Content-Length声明的长度和实际发送的数据长度不一致
500 站长平台服务器内部错误
小编利用这个提交之后在sitemap中会有实时返回数据并且会返回数据错误与正确性。
经验总结
前面有一个说是xml文档,其实我们使用post可以是一个字符串效果也是一样的,小编的做法是发布文章成功之后自动推送文章给百度收录
注意:推送的文章必须为绝对地址,如http://www.111cn.net 而不是/aaa/b.htm要是完整的地址。