前面已经介绍了向各大搜索引擎提交的经验,这次试着用 Go 语言去实践一下。也作个简单实践对比。拿 Google、Bing、Baidu 三大搜索引擎来比较,论简便性,B
字头的两个最简便,但从效果看,Google 最好。
百度
百度最简单,验证网站后,点击左侧 链接提交
就看到下面页面
发送一个 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 密钥
然后根据文档提交,下面是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
这个域名的提交次数很多,但有些域名却只有10条。
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 的两个平台操作
- https://search.google.com/search-console 在这里把
client_email
添加到域名所有者 - https://console.cloud.google.com/ 这里最复杂了,慢慢摸索
更新
下面是帖子发表后截图更新
后台临时写了个 go 脚本,运行结果
提交后刷新 Google 搜索结果
意外发现,Bing 也秒收
疑问的是:在测试里我并没有向 bing 提交啊
总结
Google 真心还是不错!Bing 也良心!!
本文网址: https://pylist.com/topic/203.html 转摘请注明来源
1 thoughts on "利用 API 自动向搜索引擎提交网址"
请问这个要怎么实现?能否加下QQ,我14977431,谢谢