隐藏

C# 实现百度站长收录主动推送、自动推送

发布:2021/11/8 17:40:59作者:管理员 来源:本站 浏览次数:1269

参数百度官方介绍


http://zhanzhang.baidu.com/linksubmit/index


提交给百度站长主要分为


主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。


自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被           自动推送给百度。可以与主动推送配合使用。


sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接           进行处理,但收录速度慢于主动推送。


手动提交:一次性提交链接给百度,可以使用此种方式。



这里介绍主动推送和自动推送


1.主动推送


比如我这个博客添加了一篇博客,希望百度能够很快收录,我可以主动调用百度接口推送给百度收录


接口调用地址:  http://data.zz.baidu.com/urls?site=www.ejk5.com&token=密钥


参数名称


site           必填          在站长平台验证的站点,比如www.example.com


token       必填          在站长平台申请的推送用的准入密钥


type         非必填       对提交内容的数据类型说明,原创数据参数:original,请提交真实原创内容


简单点说就是post指定url提供给百度接口

#region Post/Get请求数据

public static string SendRequest(string requestUrl, string data,

string contentType = "application/json", string requestMethod = WebRequestMethods.Http.Post)

{

   HttpWebRequest httpWebRequest = null;

   string returnData = "";

   try

   {

       httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUrl);

       httpWebRequest.Method = requestMethod;

       httpWebRequest.ContentType = "application/json; charset=utf-8";

       httpWebRequest.Proxy = null;

       httpWebRequest.KeepAlive = false;

       //httpWebRequest.Timeout = 1000 * 25;

       //httpWebRequest.Headers.Add("Origin", "SIS API");

       //httpWebRequest.ServicePoint.ConnectionLimit = connectionLimit;

       httpWebRequest.ServicePoint.UseNagleAlgorithm = false;

       httpWebRequest.AllowWriteStreamBuffering = false;

       httpWebRequest.Accept = "application/json";


       byte[] dataArray = Encoding.UTF8.GetBytes(data);

       httpWebRequest.ContentLength = dataArray.Length;


       using (Stream requestStream = httpWebRequest.GetRequestStream())

       {

           requestStream.Write(dataArray, 0, dataArray.Length);

           HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

           StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());

           returnData = streamReader.ReadToEnd();


           streamReader.Close();

           httpWebResponse.Close();

       }


       httpWebRequest.Abort();

   }

   catch (Exception ex)

   {

       throw ex;

   }

   finally

   {

       if (httpWebRequest != null)

       {

           httpWebRequest.Abort();

           httpWebRequest = null;

       }

   }


   return returnData;

}

#endregion


调用

string domainUrl = "www.ejk5.com";

string secretKey = "密钥";

string url = string.Format("http://data.zz.baidu.com/urls?site={0}&token={1}", domainUrl, secretKey);

string postUrl = "http://www.ejk5.com/article/details/1";


string data = SendRequest(url, postUrl);


也可以一次性提交多个url,postUrl中间用\n连接就可以


返回值 {"remain":49999,"success":1} 表示已经推送成功,今日还剩49999条可以推送,本次推送成功1条


2.自动推送


自动推送是百度站长平台为提高站点新增网页发现速度推出的工具,安装自动推送JS代码的网页,在页面被访问时,页面URL将立即被推送给百度

<script>

   (function(){

       var bp = document.createElement('script');

       var curProtocol = window.location.protocol.split(':')[0];

       if (curProtocol === 'https') {

           bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';        

       }

       else {

           bp.src = 'http://push.zhanzhang.baidu.com/push.js';

       }

       var s = document.getElementsByTagName("script")[0];

       s.parentNode.insertBefore(bp, s);

   })();

</script>


只要页面被访问则会自动推送给百度站长


主动推送和自动推送二者之间互不冲突,互为补充。


已经使用主动推送的站点,依然可以部署自动推送的JS代码,二者一起使用。