Ping服务,也称更新通知服务,是搜索引擎发现网友博客更新的一种方式。使搜索引擎能更快,更全面地收录博客文章。搜索引擎在收到Ping后会在最短时间内对相应博客进行抓取。如何加速搜索引擎快速收录的技巧,ping服务是加速网站收录的重要工具,如何加速网页的收录本文从手动加速收录、使用自动ping服务和使用网站三个方面加速网站的收录。
本文根据百度站长平台官方文档代码实现百度Ping服务,是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。
Ping服务使用方法:
你可以采取手动通知和自动通知两种方式使用ping服务(百度官方):
- 手动ping:访问http://ping.baidu.com/ping.html页面,在输入框中输入博客地址或者feed地址,点击“提交博客”按钮即可。
- 自动ping:如果您的博客程序支持自动ping功能,您只需把百度的Ping服务地址配置到你的Blog发布后台或者客户端程序中,就可以实现自动通知的功能。百度ping服务的地址为:http://ping.baidu.com/ping/RPC2
自动Ping的XML_RPC:
发送给百度Ping服务的XML-RPC客户请求需要包含如下元素:
RPC端点: http://ping.baidu.com/ping/RPC2
调用方法名: weblogUpdates.extendedPing
参数: (应按照如下所列的相同顺序传送)
- 博客名称
- 博客首页地址
- 新发文章地址
- 博客rss地址
PHP代码实现百度Ping服务:
- /**
- * 根据百度站长平台提供的API实现百度ping服务
- * from http://www.banghui.org
- */
- class ping{
- private $title; //博客名称
- private $hosturl; //博客首页地址
- private $arturl; //新发文章地址
- private $rssurl; //博客rss地址
- private $baiduXML; //百度XML结构
- private $baiduRPC; //百度XML地址
- public function __construct($title,$arturl,$hosturl,$rssurl)
- {
- if(empty($title) || empty($arturl))
- return false;
- $this->title=$title;
- $this->hosturl=$hosturl;
- $this->rssurl=$rssurl;
- $this->arturl=$arturl;
- $this->baiduRPC='http://ping.baidu.com/ping/RPC2';
- $this->baiduXML = '<?xml version="1.0" encoding="UTF-8"?>';
- $this->baiduXML .='<methodCall>';
- $this->baiduXML .=' <methodName>weblogUpdates.extendedPing</methodName>';
- $this->baiduXML .=' <params>';
- $this->baiduXML .=' <param><value><string>'.$this->hosturl.'</string></value></param>';
- $this->baiduXML .=' <param><value><string>'.$this->title.'</string></value></param>';
- $this->baiduXML .=' <param><value><string>'.$this->arturl.'</string></value></param>';
- $this->baiduXML .=' <param><value><string>'.$this->rssurl.'</string></value></param>';
- $this->baiduXML .=' </params>';
- $this->baiduXML .='</methodCall>';
- }
- public function pingbaidu()
- {
- $ch = curl_init();
- $headers=array(
- 'User-Agent: request',
- 'Host: ping.baidu.com',
- 'Content-Type: text/xml',
- );
- curl_setopt($ch, CURLOPT_URL, $this->baiduRPC);
- curl_setopt($ch, CURLOPT_HEADER, 1);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $this->baiduXML);
- $res = curl_exec ($ch);
- curl_close ($ch);
- //return $res;
- /**
- * ping-service响应举例:
- * ping-service对非POST方法请求返回HTTP_METHOD_NOT_ALLOWED(405)错误代码
- * 对超大错误包返回HTTP_REQUEST_ENTITY_TOO_LARGE(413)错误代码
- * 对非“text/xml”请求包返回HTTP_UNSUPPORTED_MEDIA_TYPE(415)错误代码
- * 其他情况返回HTTP_OK(200)代码
- * xml-rpc响应http包体为一个xml文档,含有一个int值,0表示推送成功,其他值表示推送失败,目前只有0和1。
- */
- return (strpos($res,"<int>0</int>"))?true:false;
- }
- }
- //调用方式:
- //$arc = new Ping('网站标题','更新的URL地址','网站域名','rss地址');
- $arc = new Ping('csdn','http://www.csdn.net/4377.html','http://www.csdn.net','http://www.csdn.net/feed');
- //返回结果为true 表示成功。
- echo $arc->pingbaidu();
一般来说通过自己去百度ping之后,百度爬虫会在10分钟左右到达你的网站,但是你的网站内容是否符合百度要求,这个是要看百度的。是否收录,和收录情况这个主要看的你文章内容,所以大家还是安安心心好好做原创文章才是王道