Skip to content

urlsubmitter is a Go package designed for SEO purposes, enabling you to submit URLs to various search engines and services, including Baidu, Microsoft IndexNow, and Google Indexing API.

Notifications You must be signed in to change notification settings

axiaoxin-com/urlsubmitter

Repository files navigation

URL Submitter

urlsubmitter 是一个用 Go 语言编写的 SEO 工具包,用于将 URL 提交到不同的搜索引擎和服务,包括百度、微软 IndexNow 和 Google Indexing API。

English Version

功能

  • 将 URL 提交到百度
  • 将 URL 提交到微软 IndexNow
  • 将 URL 提交到 Google Indexing API

安装

首先,确保你已经安装了 Go 语言环境。然后,你可以通过以下命令安装 urlsubmitter 包:

go get github.com/axiaoxin-com/urlsubmitter

使用前必读

调用 Google Indexing API 和 Bing IndexNow 前期需要有一点准备工作,可以参考以下文章:

使用示例

以下是如何使用 urlsubmitter 包的示例代码:

package main

import (
    "fmt"
    "log"

    "github.com/axiaoxin-com/urlsubmitter"
)

func main() {
    // 初始化 Baidu 提交器
    baiduSubmitter := urlsubmitter.NewBaiduSubmitter("http://data.zz.baidu.com/urls?site=https://www.example.org&token=baidutoken")

    // 初始化 Bing 提交器
    bingSubmitter := urlsubmitter.NewBingSubmitter(
        "www.example.org",
        "bingkey",
        "https://www.example.org/keylocation.txt",
    )

    // 初始化 Google 提交器
    googleSubmitter := urlsubmitter.NewGoogleSubmitter("/path/to/your-svc-account-keys.json")

    urls := []string{
        "http://www.example.org/1.html",
        "http://www.example.org/2.html",
    }

    // 提交 URL 到 Baidu
    baiduResult, err := baiduSubmitter.SubmitURLs(urls)
    if err != nil {
        log.Fatalf("Error submitting to Baidu: %v", err)
    }
    fmt.Println("Baidu Result:", baiduResult)

    // 提交 URL 到 Bing
    bingResult, err := bingSubmitter.SubmitURLs(urls)
    if err != nil {
        log.Fatalf("Error submitting to Bing: %v", err)
    }
    fmt.Println("Bing Result:", bingResult)

    // 提交 URL 到 Google
    googleResult, err := googleSubmitter.SubmitURLs(urls)
    if err != nil {
        log.Fatalf("Error submitting to Google: %v", err)
    }
    fmt.Println("Google Result:", googleResult)
}

UniversalSubmitter 用法示例:

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/axiaoxin-com/urlsubmitter"
)

func main() {
	options := &urlsubmitter.UniversalOptions{
		BaiduAPI:            os.Getenv("BAIDU_API"),
		BingKey:             os.Getenv("BING_KEY"),
		BingKeyLocation:     os.Getenv("BING_KEY_LOCATION"),
		BingHost:            os.Getenv("BING_SUBMIT_HOST"),
		GoogleCredentialsFile: os.Getenv("GOOGLE_CREDENTIALS_FILE"),
	}

	universal := urlsubmitter.NewUniversalSubmitter(options)
	if universal == nil {
		log.Fatal("No valid submitter configurations provided.")
	}

	urls := []string{
		"http://www.example.com/1.html",
		"http://www.example.com/2.html",
		"https://www.example.org/url1",
		"https://www.example.org/folder/url2",
		"https://example.com/new-url/",
	}

	results, err := universal.SubmitURLs(urls)
	if err != nil {
		log.Fatalf("Failed to submit URLs: %v", err)
	}

	for platform, result := range results {
		fmt.Printf("%s: %s\n", platform, result)
	}
}

运行单元测试

你可以使用以下命令运行单元测试,通过从环境变量读取相关参数:

# 环境变量
export SUBMIT_URL="要提交的url"
export BAIDU_API="百度api"
export BING_SUBMIT_HOST="bing host参数"
export BING_KEY="bing key参数"
export BING_KEY_LOCATION="bing keyLocation参数"
export GOOGLE_CREDENTIALS_FILE="google密钥文件参数"

运行测试:

go test ./...

贡献

欢迎提交问题(Issues)和贡献代码(Pull Requests)。在提交 Pull Request 之前,请确保所有测试通过,并遵循项目的代码规范。

感谢你使用 urlsubmitter!希望它能帮助你简化 URL 提交的工作流程。

About

urlsubmitter is a Go package designed for SEO purposes, enabling you to submit URLs to various search engines and services, including Baidu, Microsoft IndexNow, and Google Indexing API.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages