Saturday, November 15, 2008

你博客的 ping 列表真的全在工作吗?

我们知道在博客发表文章时,可以利用 XML-RPC 技术将更新通知到各种 Blog 的服务商、搜索引擎等,好让它们主动来抓取,从而提高博客文章被收录的速度和范围。

Google 的 Blogger 不像 WordPress,后者提供了一个方便的 Update Service,只要将 Blog 服务商公布的 XML-RPC 接口地址填进去就可以方便的在发布的时候 ping 这些地址。Blogger 只是在 Settings » Basic 有一个“Add your blog to our listings?”的选项,解释说选择了“Yes”,Google Blog Search 以及 Weblogs.com 就会来收录,除此之外并没有一个可以设置 ping 接口地址列表的地方。

我强烈怀疑 Blogger 这个选项的作用,因为曾经有很长一段时间 Google Blog Search 都没有收录我的文章,后来为了确保收录效果,每次发布文章后我都手工 ping,于是通常 5 分钟内文章就会被收录,而 10 分钟左右,Google 的网页搜索也会收录这篇文章(观察到的最快纪录为 8 分钟)。但是每次都要手工去 ping 确实很麻烦,于是今天就琢磨着自己用 PHP 写一个简单的 XML-RPC 客户端来做这个工作,顺便还可以把其它主流的 ping 服务地址加进去,批量执行。

结果是不试不要紧,一试吓一跳。我参考 Weblogs.comGoogle Blog Search 提供的标准 ping 操作 API 文档写了一个 XML-RPC 的客户端,测试了一下主流的 ping 服务地址列表,发现其中有很大一部分都不能正常工作。
http://blogsearch.google.com/ping/RPC2
http://rpc.pingomatic.com/
http://api.my.yahoo.com/RPC2
http://api.moreover.com/RPC2
http://rpc.newsgator.com/
http://rpc.weblogs.com/RPC2
http://www.feedsky.com/api/RPC2
http://ping.feedburner.com/
http://rpc.technorati.com/rpc/ping
http://ping.blog.qikoo.com/rpc2.php
http://blog.iask.com/RPC2
http://www.xianguo.com/xmlrpc/ping.php
http://www.zhuaxia.com/rpc/server.php
以下就来一一看一下 ping 这些地址得到的具体结果。
以上这些地址中,能够完全按照标准 API 正常工作的有:
http://blogsearch.google.com/ping/RPC2
http://api.my.yahoo.com/RPC2
http://api.moreover.com/RPC2
http://rpc.weblogs.com/RPC2
http://rpc.technorati.com/rpc/ping
以下是其它有问题的 ping 接口的具体情况。
http://rpc.pingomatic.com/
这是一个十分有名,被博客界所有人争相 ping 之的地址,但是,真的有人见过它返回正确的结果吗?我试了很多次,无论是请求 weblogUpdates.extendedPing 方法,还是weblogUpdates.ping 方法,无论是提供两个参数还是三个、四个参数,它返回的 HTTP 头永远只会是“501 Not Implemented”,正文部分没有任何内容。我另外还试了 http://rpc.pingomatic.com/RPC2http://pingomatic.com/ 两个地址,得到的结果一样。
http://rpc.newsgator.com/
这个地址存在大家的列表中,我感到非常诧异,因为这个域名都已经不存在了,我换了很多个 DNS 服务器都不能解析出它的 IP 地址。后来发现了 NewsGator 的另一个 ping 接口:
http://services.newsgator.com/ngws/xmlrpcping.aspx
经过测试,这个是可以正常工作的。
http://ping.feedburner.com/
起先 FeedBurner 的接口很长时间都不返回,纳闷了很久;细查之下,发现 ping.feedburner.com 这个域名做成了 feeds.feedburner.com 的 CNAME 纪录,而众所周知后者已经被墙,所以实际上这个 ping 接口是没有办法直接通知到的,除非发起 ping 动作的客户端在国外运行。
http://www.feedsky.com/api/RPC2
Feedsky 趁着 FeedBurner 被封在国内很是火了一把,可是做事情的态度和质量还是和人家有差距。首先是没有实现 weblogUpdates.extendedPing 方法,而在请求 weblogUpdates.ping 方法时,返回的结果也很不稳定。有时是正常的结果,有时会以错误码 304 将整个 Feed 的内容放在 message 字段中返回,有时又干脆什么都不返回。
http://ping.blog.qikoo.com/rpc2.php
这个似乎是奇虎官方给出的地址,而几乎网上搜到的所有 ping 列表中都有它。奇怪的是,这个地址根本打不开,HTTP 状态码为 404。我曾经猜测是不是大家在传抄过程中不小心弄错了大小写,于是也试了 RPC2.php, RPC.php, rpc.php,结果都是 404。
http://blog.iask.com/RPC2
新浪这个表面看起来很不错,相应速度很快,返回的 XML 格式也很标准。可是无论怎么提交,返回结果都是 flerror: 1; message: sorry,failing。以至于让我怀疑,这个接口背后的后台程序真的有在运作吗?
http://www.xianguo.com/xmlrpc/ping.php
发出请求大约 5 秒钟后,返回如下内容:
Fatal error: Call to undefined function xmlrpc_server_create() in /opt/lamp/code/common/rssreader-common-2008-11-12-14-31-18/topgene/feed/xmlrpc/server.php on line 15
怎么?PHP 的扩展库都还没配置好就当公共运营的服务器了?而且还直接把错误信息输出到页面上,服务器路径信息一览无余。鲜果啊鲜果,让我说你什么好哇!
http://www.zhuaxia.com/rpc/server.php
抓虾比鲜果好点,至少还返回了,只不过不知道返回的是啥。返回结果如下:
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
 <param>
  <value>
   <boolean>0</boolean>
  </value>
 </param>
</params>
</methodResponse>
如果说你看不懂 Weblogs.com 的英文文档倒也情有可原,但是照着 Google 的中文文档依葫芦画瓢总会吧?自己想当然的随便弄一下就完事了?
由以上可以看出,大公司终究还是大公司。令人深思的是,这些不能正常工作的接口中,几乎全是国内的服务商,其中有些暴露出来的问题,更是令人汗颜。

6 comments:

Anonymous said...

是啊,怎么好多大网站的博客ping服务都不正常

唏嘘一世 said...

我也测试了,抓虾的无法响应,新浪的提交的网址数必须是1个。

Cat. said...

一直用默认的就够了....

流星天空 said...

手动更新去了

oakleyses said...

coach factory, oakley sunglasses, polo ralph lauren outlet, kate spade outlet, michael kors, ray ban sunglasses, michael kors outlet, louboutin, ray ban, longchamp, louis vuitton handbags, air jordan, louboutin, prada handbags, gucci outlet, oakley sunglasses, prada outlet, coach outlet store, nike shoes, louis vuitton, polo ralph lauren, air max, michael kors outlet, louboutin, michael kors outlet, toms shoes, tory burch outlet, burberry outlet online, tiffany and co, air max, jordan shoes, nike air max, coach outlet, true religion jeans, oakley sunglasses, ray ban sunglasses, burberry outlet online, nike free, michael kors, true religion outlet, louis vuitton outlet online, true religion, chanel handbags, polo ralph lauren outlet, coach purses, nike air max, nike free, ralph lauren, longchamp outlet

chenlili said...

chenlili20160629
air force 1
louboutin shoes
oakley vault
michael kors handbags
retro 11
ray ban sunglasses outlet
michael kors outlet
polo ralph lauren
coach outlet store online
adidas originals
tory burch handbags
coach outlet
louis vuitton purses
michael kors handbags
ray ban sunglasses outlet
coach outlet store online
rolex watches
designer handbags
louis vuitton bags
nike sb dunks
louis vuitton outlet stores
rolex watches
louis vuitton outlet
giuseppe zanotti outlet
ray ban sunglasses
nike blazers uk
ray ban sunglasses
coach outlet
nike store
ray ban sunglasses outlet
coach outlet
ghd hair straighteners
jordan retro 4
louis vuitton purses
coach outlet store online clearances
asics outlet
polo ralph lauren
nike sb janoski
jordan 3 white cenment