c#调用百度api主动推送提交链接,达到快速收录效果
程序员文章站
2022-03-08 13:52:15
百度介绍说:主动推送是最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。...
百度介绍说:主动推送是最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
主动推送达到怎么样的效果:
及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
保护原创:对于网站的最新原创内容,使用主动推送功能可以快速通知到百度,使内容可以在转发之前被百度发现
主动推送当然需要一定的技术力量,如果对于不懂技术的站长就不建议使用主动推送。
如何使用主动推送:
1,需要网站制作推送接口,进入百度站长平台的普通收录的主动推送工具后,会看到接口调用地址和token,token是由16个英文数字组合的字符串
2. 编写代码进行api调用,推送url地址。百度上面有介绍一些调用的实例,我这里使用的是c#开发的推送接口,下面是代码:
/// <summary> /// 提交文章链接到百度 /// </summary> /// <param name="url">文章的链接</param> /// <param name="IsOriginal">是否为原创</param> public static string PostBaidu(string url, bool IsOriginal,string strStie,string strToken) { string urlPage = "http://data.zz.baidu.com/urls?site=" + strStie + "&token=" + strToken + ""; //if (IsOriginal) //{ // urlPage += "&type=original"; //} HttpWebRequest request = null; Encoding encoding = Encoding.GetEncoding("utf-8"); byte[] data = encoding.GetBytes(url); //这里采用utf-8编码 //设置提交的参数 request = WebRequest.Create(urlPage) as HttpWebRequest; request.Method = "POST"; request.ContentType = "text/plain"; request.ContentLength = data.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(data, 0, data.Length); requestStream.Flush(); requestStream.Close(); } //测试返回结果 HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { response = (HttpWebResponse)ex.Response; } Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); return retString; }
直接拷贝就可以正常使用调用。结果会返回成功与否的json字符串。需要了解更多的详细信息可以登录百度站长平台查看说明。
多个url同时推送时,把多个url拼接起来推送即可,如代码
foreach (var url in urls) { strUrl += url+ "\n"; }
如果有调试时返回:{"remain":0,"success":0,"remain_original":0,"success_original":0}如此json串,说明你的发送参数有些问题,可以尝试修改或调整下代码。