欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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串,说明你的发送参数有些问题,可以尝试修改或调整下代码。

相关标签: c# 百度 推送