Halo博客的百度定时页面提交

本文介绍了如何使用Java实现Halo博客的百度定时页面提交,以提高文章的搜索引擎收录。通过Halo的API获取文章链接,并利用百度收录API进行提交,同时讨论了工程搭建、部署以及注意事项,包括避免频繁提交旧链接导致的限制。
摘要由CSDN通过智能技术生成

Halo博客的百度定时页面提交

前言

  • 好不容易搭建好博客,写了些自以为有点意思的文章,但是没人看!!因为没有提交到搜索引擎,所以根本没人能搜到嘛~。虽然Next主题提供了百度自动提交的配置,但是百度收录已经不再提供推动收录的服务,所以Next主题的配置也没啥用了
  • 百度收录网站中提供了三种收录方式,其中API提交最快捷,因此考虑使用Java实现将Halo博客文章推送到百度收录中
    • API提交
    • sitemap提交
    • 手动提交
  • Halo提供了用于获取文章列表的API,因此思路很简单:使用Java定时任务线程池按照固定的时间间隔从Halo API中获取全部的文章链接,然后调用百度收录API,向百度提交文章链接
    • 百度收录对于频繁提交旧的链接有一定的限制,如果经常重复提交旧链接,会下调配额,甚至可能会失去API推送功能的权限,如果经常提交新的文章链接,可能适当提高配额。因此需要建立一个简单的缓存,提交链接时滤除旧的已经提交过的链接
  • 尽管Google使用站点地图就已经能很好地进行链接的抓取了,不用单独提交,但是Google同样推荐使用indexing API主动提交要收录的链接,具体可参考Halo博客的谷歌定时页面提交

工程搭建

  • 建立Gradle工程,配置文件如下所示

    plugins {
         
        id 'java'
        id 'application'
    }
    
    group 'xyz.demoli'
    version '1.0-SNAPSHOT'
    
    
    sourceCompatibility = 1.11
    
    mainClassName="xyz.demoli.Main"
    
    repositories {
         
        mavenCentral()
    }
    
    application{
         
        applicationDefaultJvmArgs = ['-Duser.timezone=GMT+8']
    }
    
    dependencies {
         
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
        // https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
        implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.3'
        implementation 'com.google.code.gson:gson:2.9.0'
        // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api
        implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.14.1'
        // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core
        implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.14.1'
        // https://mvnrepository.com/artifact/org.projectlombok/lombok
        compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
        annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
    }
    
    test {
         
        useJUnitPlatform()
    }
    
    • annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.22'保证gradle项目中lombok的注解可以被正确解析
    • applicationDefaultJvmArgs参数的设置是为了解决后续服务部署在容器中时日志打印时间不是东八区时区的问题
  • 配置文件如下:

    prefix=https://blog.demoli.xyz
    postAPI=%s/api/content/posts?api_access_key=%s&page=%d
    apiAccessKey=***
    baiduUrl=http://data.zz.baidu.com/urls?
    token=***
    
    • apiAccessKey是在Halo博客设置中设定的

      image-20220327184136467

    • prefix是Halo博客的首页访问URL

    • token是百度提交平台为用户提供的提交token,在百度提交网站页面中有展示

  • 日志配置文件如下:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <configuration status="INFO">
        <appenders>
            <console name="console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            </console>
        </appenders>
    
        <loggers>
            <root level="INFO">
                <appender-ref ref="console"/>
            </root>
        </loggers>
    </configuration>
    
  • 整个工程只有两个核心类

    • PostScrap

      import com.google.gson.Gson;
      import com.google.gson.JsonArray;
      import com.google.gson.JsonElement;
      import com.google.gson.JsonObject;
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值