百度和google都提供了網站更新自動提交的接口,接口協議全都是基于XML-RPC的。
XML-RPC是一個遠程過程調用(遠端程序呼叫)(remote procedure call,RPC)的分布式計算協議,通過XML將調用函數封裝,并使用HTTP協議作為傳送機制。 功能類似的還有JSON-RPC協議。原理相同,不過數據通過JSON形式傳輸。
使用XML-RPC協議的好處就是可以在網站有內容更新的時候自動通知搜索引擎,而不用被動的等待蜘蛛來爬。
百度和Google的接口都遵循XML-RPC協議,不同搜索引擎的接口名稱和參數可能略有不同,我們可以根據搜索引擎所提供的API進行相應的調整。
實現本功能需要使用一個開源的組件:CookComputing.XmlRpc。該組件提供了XML-RPC協議的所有功能,包括WordPress客戶端支持等功能。
以Google為例,提供代碼:
using System;
using CookComputing.XmlRpc;
public interface IMath : IXmlRpcProxy
{
[XmlRpcMethod("weblogUpdates.ping")]
CookComputing.XmlRpc.XmlRpcStruct ping(string a, string b, string c, string d);
}
public class Test
{
private IMath googleProxy = XmlRpcProxyGen.Create<IMath>();
public void Ping()
{
googleProxy.Url = "http://blogsearch.google.com/ping/RPC2";
googleProxy.ping("愛造人小說閱讀", "http://www.aizr.net/", "http://www.aizr.net/Search.aspx?m=4&key=%E6%9D%83%E8%B4%A2
", "http://www.aizr.net/rss.aspx");
}
}
using CookComputing.XmlRpc;
public interface IMath : IXmlRpcProxy
{
[XmlRpcMethod("weblogUpdates.ping")]
CookComputing.XmlRpc.XmlRpcStruct ping(string a, string b, string c, string d);
}
public class Test
{
private IMath googleProxy = XmlRpcProxyGen.Create<IMath>();
public void Ping()
{
googleProxy.Url = "http://blogsearch.google.com/ping/RPC2";
googleProxy.ping("愛造人小說閱讀", "http://www.aizr.net/", "http://www.aizr.net/Search.aspx?m=4&key=%E6%9D%83%E8%B4%A2
", "http://www.aizr.net/rss.aspx");
}
}
這樣,就實現了 一個最簡單的提交網址到搜素引擎的功能。其實,XML-RPC的功能遠不止這些,如果您對XML-RPC協議有獨到見解,歡迎您來和我共同探討。拙文如對您產生誤導,在下慚愧至極。
推薦閱讀:大羅土地
浙公網安備 33010602011771號