java实现百度站长主动推送个人网站链接

个人博客已经更新欢迎来访:www.stopping.top

一、百度站长链接提交

  1. 链接提交工具是网站主动向百度搜索推送数据的工具,本工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题
  2. 百度搜索资源平台为站长提供链接提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。

二、提交方式

  1. 主动推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。使用主动推送功能效果
    (1)及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
    (2)保护原创:对于网站的最新原创内容,使用主动推送功能可以快速通知到百度,使内容可以在转发之前被百度发现
  2. sitemap:您可以定期将网站链接放到Sitemap中,然后将Sitemap提交给百度。百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
  3. 手工提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度。
  4. 自动推送:是轻量级链接提交组件,将自动推送的JS代码放置在站点每一个页面源代码中,当页面被访问时,页面链接会自动推送给百度,有利于新页面更快被百度发现。

三、主动推送-Java实现

  1. 推送方式、推送接口、接口返回值看官网 文档地址。本文实现主动推送的逻辑是在管理员每次发布博客成功时将生成的博客链接推送到百度。

  2. 使用Post推送
    ###(1) 新建工具类PostUrl.java

/**
 * @Author: stopping
 * @Date: 2020/04/30 18:30
 * 转载注明出处、个人博客网站:www.stopping.top
 */
@Service
public class PostUrl {
     

    private final Logger logger = LoggerFactory.getLogger(PostUrl.class);

    private RestTemplate restTemplate;

    public void BaiduPost(String sitePath,String url){
     
        BufferedReader in = null;
        PrintWriter out = null;
        try {
     
            //建立连接
            URLConnection connection = new URL(sitePath).openConnection();
            //设置请求属性
            connection.setRequestProperty("Host","data.zz.baidu.com ");
            connection.setRequestProperty("User-Agent","curl/7.12.1 ");
            connection.setRequestProperty("Content-Length","83");
            connection.setRequestProperty("Content-Type", "text/plain");

            connection.setDoInput(true);
            connection.setDoOutput(true);
            //获取connection输出流
            out = new PrintWriter(connection.getOutputStream());
            out.print(url.trim());
            out.flush();

            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            String result = "";
            while ((line = in.readLine())!=null){
     
                result += line;
            }
            logger.info("post提交结果:{}",result);
        } catch (MalformedURLException e) {
     
            e.printStackTrace();
        } catch (IOException e) {
     
            logger.info("发送POST异常");
            e.printStackTrace();
        }
		finally{
     
			in.close();
		}
    }
}

(2)在测试用例测试

```java
public class PostUrlTest extends TestCase {
	@Test
	public void testBaidu(){
		String siteurl = "http://data.zz.baidu.com/urls?site=your site&token=xxx";
		String blogurl = "http://www.stopping.top/u/Blog/19";
		PostUrl postUrl = new PostUrl();
		postUrl.BaiduPost(siteurl,blogurl);
	}
}

```

(3)测试结果

	21:04:17.492 [http-nio-8080-exec-2] INFO  c.x.b.b.c.UserspaceController - 百度接口http://www.stopping.top/u/Blog/1
	21:04:17.736 [http-nio-8080-exec-2] INFO  c.x.blog.blogprototype.util.PostUrl - post提交结果:{"remain":2997,"success":1}

(4)说明

根据官方文档推送反馈,测试结果反馈的结果是正确并已经推送到百度。
java实现百度站长主动推送个人网站链接_第1张图片

###(5)使用主动推送之后的数据变化
java实现百度站长主动推送个人网站链接_第2张图片

你可能感兴趣的:(工具,百度)