利用google博客的ping服务接口API加快网站收录

 
更多

谷歌博客推出了ping服务已经很长时间了,如果我们的博客是wordpress可以很方便的设置ping服务,但是如果我们的博客不是wordpress,或者我们的网站程序是自己手写的,那么就要自己写RPC代码了。今天断桥残雪分享一下自己写的PHP的XML-RPC代码。在此之前先说说ping服务的好处以及wordpress的ping设置。
配置ping服务,加快收录速度

谷歌的ping服务是一种快速收录的方法,打个比方就是:我们写了一篇文章想要谷歌收录,我们就可以使用ping服务来通知下谷歌,要googlebot尽快来抓取收录。谷歌官方的解释:

通过 Google“博客搜索”Ping API, 用户可以程序化的方式将博客内容的更新通知给 Google“博客搜索”引擎。这对于经常更新博客内容的用户尤其有用。博客服务提供商的管理人员也可以利用此API将其平台上的博客内容变化向 Google 通告,以便 Google“博客搜索”及时抓取来自这一服务提供商的最新内容。为设置对 Google“博客搜索”的自动 Ping 机制,请按照如下所述设置XML-RPC客户端或REST客户端以发送请求。您可以任选一种方法进行通知;两者都将按照相同的方式进行处理。

wordpress设置ping的方法

wordpress自身就带着ping服务,只要我们配置一下就可以了,步骤是:设置→撰写→更新服务。常用的ping服务有以下几个:

http://rpc.pingomatic.com/
http://ping.baidu.com/ping/RPC2(百度的)
http://blogsearch.google.com/ping/RPC2(谷歌的)
http://api.my.yahoo.com/RPC2(雅虎的)
http://api.my.yahoo.com/rss/ping(雅虎的)
http://www.feedsky.com/api/RPC2(feedsky的)

谷歌ping服务的PHP代码

关于RPC的详细介绍可以移步维基百科,谷歌ping服务的标准:

RPC端点: http://blogsearch.google.com/ping/RPC2
调用方法名: weblogUpdates.extendedPing
参数: (应按照如下所列的相同顺序传送)

站点名
站点URL
需要检查更新的页面URL
相应的RSS、RDF或Atom种子的URL
可选:页面内容的分类名称(或标签)。您可以指定多个值,之间用’|’字符进行分隔。

首先要写一个CURL的函数,来POST谷歌的RPC端点:

function postUrl($url, $postvar) {
    $ch = curl_init();
	$headers = array(
            "POST ".$url." HTTP/1.0",
            "Content-type: text/xml;charset=\"utf-8\"",
            "Accept: text/xml",
            "Content-length: ".strlen($postvar)
        );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
    $res = curl_exec ($ch);
    curl_close ($ch);
    return $res;
}

上面的代码不多做解释,关于PHP的详细curl功能,请参考《cURL常用的几个PHP函数》。

主要的curl写好了之后,剩下就是要根据谷歌的XML-RPC标准组装发送的数据了,详细的请求例子可以点这里。

例如我的代码是这样写的:

$googleXML = <<

  weblogUpdates.extendedPing
  
    
      断桥残雪部落格
    
    
      http://js8.in
    
    
      http://js8.in/379.html
    
    
      http://js8.in/rss.xml
    
  

END;
$res = postUrl('http://blogsearch.google.com/ping/RPC2', $googleXML);
//下面是返回成功与否的判断(根据谷歌ping的接口说明)
if (strpos($res, "0"))
        echo "PING成功";
    else
        echo "PING失败";

百度的ping服务xml代码是跟谷歌不同的,百度总是会有自己的特点,哎,情何以堪啊。下一次写一下百度的博客ping服务–《利用百度ping服务API加快文章收录,秒收不是梦》

以下是我博客用的虽然有很多小的搜索引擎,但是加上也无妨哦~!下面会给出百度Ping的常见方法,其他的原理类似,如果你的网站或者博客有Ping插件,那就更方便了,直接复制到你的插件里面就ok啦~

——————————————————————————–

http://ping.baidu.com/ping/RPC2

http://rpc.pingomatic.com/
http://blogsearch.google.com/ping/RPC2
http://www.feedsky.com/api/RPC2
http://rpc.technorati.com/rpc/ping
http://rpc.pingomatic.com/
http://blogsearch.google.com/ping/RPC2
http://api.my.yahoo.com/rss/ping
http://www.xianguo.com/xlmrpc/ping.php
http://www.zhuaxia.com/rpc/server.php
http://ping.blog.qikoo.com/rpc2.php
http://blog.iask.com/RPC2
http://api.moreover.com/RPC2
http://api.my.yahoo.com/RPC2
http://bitacoras.Net/ping/
http://blog.iask.com/ping.php
http://blogsearch.google.com/ping
http://coreblog.org/ping/
http://ping.amagle.com/
http://ping.bitacoras.com
http://ping.blo.gs/
http://ping.bloggers.jp/rpc/
http://ping.cocolog-nifty.com/xmlrpc
http://ping.myblog.jp
http://ping.rootblog.com/rpc.php
http://ping.syndic8.com/xmlrpc.php
http://ping.weblogalot.com/rpc.php
http://ping.weblogs.se/
http://ping.wordblog.de/
http://pinger.blogflux.com/rpc
http://pingoat.com/goat/RPC2
http://pingomatic.com/
http://rcs.datashed.Net/RPC2
http://rpc.blogbuzzmachine.com/RPC2
http://rpc.blogrolling.com/pinger/
http://rpc.britblog.com
http://rpc.newsgator.com/
http://rpc.pingomatic.com/
http://rpc.tailrank.com/feedburner/RPC2
http://rpc.weblogs.com/pingSiteForm
http://rpc.weblogs.com/RPC
http://rpc.weblogs.com/RPC2
http://rpc.wpkeys.com
http://services.newsgator.com/ngws/xmlrpcping.aspx
http://so.blog.qihoo.com/pingblog.html
http://topicexchange.com/RPC2
http://www.a2b.cc/setloc/bp.a2b
http://www.bitacoles.Net/ping.php
http://www.blogdigger.com/RPC2
http://www.blogoole.com/ping/
http://www.blogoon.Net/ping/
http://www.blogpeople.Net/servlet/weblogUpdates
http://www.blogsdominicanos.com/ping/
http://www.blogsnow.com/ping
http://www.blogstreet.com/xrbin/xmlrpc.cgi
http://www.feedping.com
http://www.lasermemory.com/lsrpc/
http://www.newsisfree.com/RPCCloud
http://www.pingoat.com/
http://www.popdex.com/addsite.php
http://www.rssping.com/
http://www.snipsnap.org/RPC2
http://www.syndic8.com/xmlrpc.php
http://www.wasalive.com/ping/
http://www.weblogues.com/RPC/
http://xmlrpc.blogg.de/
http://www.oh/
http://xping.pubsub.com/ping/
http://bblog.com/ping.php
http://blog.goo.ne.jp/XMLRPC
http://bulkfeeds.Net/rpc
http://ping.fakapster.com/rpc
http://ping.feedburner.com/
http://ping.baidu.com/ping/RPC2

——————————————————————————–

什么是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地址
Ping请求包的例子
weblogUpdates.extendedPing xml-rpc请求举例:

POST /ping/RPC2 HTTP/1.0
User-Agent: request
Host: ping.baidu.com
Content-Type: text/xml
Content-Length: 511



weblogUpdates.extendedPing 百度的空间 http://hi.baidu.com/baidu/ http://baidu.com/blog/example.html http://hi.baidu.com/baidu/rss

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。
推送成功时的服务器响应包为:

HTTP/1.1 200 OK
Date: Mon, 11 May 2009 11:54:53 GMT
Content-Length: 156
Connection: close
Content-Type: text/xml



0

推送失败时的服务器响应包为:

HTTP/1.1 200 OK
Date: Mon, 11 May 2009 11:54:53 GMT
Content-Length: 156
Connection: close
Content-Type: text/xml



1

打赏

本文固定链接: https://www.cxy163.net/archives/315 | 绝缘体

该日志由 绝缘体.. 于 2012年03月17日 发表在 首页 分类下,
原创文章转载请注明: 利用google博客的ping服务接口API加快网站收录 | 绝缘体
【上一篇】
【下一篇】

报歉!评论已关闭.