利用 API 自动向搜索引擎提交网址

前面已经介绍了向各大搜索引擎提交的经验,这次试着用 Go 语言去实践一下。也作个简单实践对比。拿 Google、Bing、Baidu 三大搜索引擎来比较,论简便性,B 字头的两个最简便,但从效果看,Google 最好。

bing push

百度

百度最简单,验证网站后,点击左侧 链接提交 就看到下面页面

百度网址提交

发送一个 POST 请求就可以,下面是用 Go 的简单实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func Baidu() {
	sUrl := "http://data.zz.baidu.com/urls?site=https://pylist.com&token=xxxxxxxx"
	buf := bytes.NewBufferString("https://pylist.com/t/1581940902")
	req, err := http.NewRequest("POST", sUrl, buf)
	if err != nil {
		return
	}
	req.Header.Set("Content-Type", "text/plain")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return
	}
	defer resp.Body.Close()
}

Bing

Bing 也类似,不过要生成 API 密钥

Bing 生成密钥

然后根据文档提交,下面是go 的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func Bing() {
	sUrl := "https://ssl.bing.com/webmaster/api.svc/json/SubmitUrl?apikey=xxxxxxxx"
	buf := bytes.NewBufferString(`{
"siteUrl":"https://pylist.com",
"url":"https://pylist.com/t/1581940902"
}`)
	req, err := http.NewRequest("POST", sUrl, buf)
	if err != nil {
		return
	}
	req.Header.Set("Content-Type", "application/json; charset=utf-8")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return
	}
	defer resp.Body.Close()
}

对于一些错误的处理:

1
{"ErrorCode":14,"Message":"ERROR!!! NotAuthorized"}

原因是域名未验证

1
{"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}

URL 改用 https://ssl.bing.com

bing 提交次数

这个域名的提交次数很多,但有些域名却只有10条。

bing 提交次数

bing 文档参考 https://docs.microsoft.com/en-us/dotnet/api/microsoft.bing.webmaster.api.interfaces.iwebmasterapi.submiturl?view=bing-webmaster-dotnet

Google

Google 最麻烦,估计是他家的东西多,关系复杂。但 Google 的文档也很具体,有时候也是因为太具体了,或是版本、页面改变,被弄晕是很正常。可以参考官方的文档慢慢实现。

google 提交网址索引

文档在这里 https://developers.google.com/search/apis/indexing-api/v3/quickstart

下面简单提一下中间遇到的小问题。

https://search.google.com/search-console 给已验证的域名添加所有者时,不是“添加用户”

添加所有者

否则会出现下面的错误

1
2
3
4
5
6
7
{
  "error": {
    "code": 403,
    "message": "Permission denied. Failed to verify the URL ownership.",
    "status": "PERMISSION_DENIED"
  }
}

在这之前,你可能会遇到这样的错误

1
Reason: required, Message: Login Required.

这个接口需要登录后操作,通过 oauth2 登录得到 token ,其有效时间是 1 小时。

需要在 google 的两个平台操作

更新

下面是帖子发表后截图更新

后台临时写了个 go 脚本,运行结果

go 向google提交网址

提交后刷新 Google 搜索结果

Google 搜索结果

意外发现,Bing 也秒收

Bing 也秒收

疑问的是:在测试里我并没有向 bing 提交啊

总结

Google 真心还是不错!Bing 也良心!!

本文网址: https://pylist.com/topic/203.html 转摘请注明来源

Suggested Topics

向各搜索引擎主动提交网址的经验

当网站添加了新内容后,都想第一时间让搜索引擎知道并且来抓取,省得“原创”都给了采集站。当采取主动提交时,Google 响应很快,60秒左右收录!百度响应也不赖。...

从UserAgent识别搜索引擎并判断真假蜘蛛

一般搜索引擎去爬取一个网站时,首先是去读取网站的robots.txt 文件,看看网站管理员有没有在该文件设置禁止某些蜘蛛,或禁止访问哪些路径。然而一些流氓蜘蛛不会顾及robots.txt 文件,想爬哪就爬哪。这种情况管理员只能通过应用程序去识别判断,是否限制某些访问。...

Leave a Comment

1 thoughts on "利用 API 自动向搜索引擎提交网址"

#1 tams says:

请问这个要怎么实现?能否加下QQ,我14977431,谢谢