注意:只有获得sitemap权限的站长才可以进行这个操作,否则你没有access_token密私是无法提交的。
1.进入之后如下图所示我们会看到如下界面
下面有一个官方举例的一个curl推荐地址
代码如下 | 复制代码 |
将xml数据写入一个本地文件,比如thread.xml,然后调用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='<?xml version="1.0" encoding="UTF-8"?>'; $data.=' <urlset>'; $data.=' <url>'; $data.=' <loc><![CDATA['.$url.']]></loc>'; $data.=' <lastmod>'.$now.'</lastmod>'; $data.=' <changefreq>always</changefreq>'; $data.=' <priority>1.0</priority>'; $data.=' </url>'; $data.=' </urlset>'; $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; ?> |
提交之后返回结果
代码如下 | 复制代码 |
<?xml version="1.0" encoding="UTF-8" ?> <methodResponse> <params> <param> <value> <int>200</int> </value> </param> </params> </methodResponse> |
注意只有返回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要是完整的地址。
时间: 2024-10-21 22:16:15