首先需要申请百度站长账号:
1.百度站长入口
http://zhanzhang.baidu.com/linksubmit/index
网站提高了很多站长所需的东西。你一看便知。
2.登录后:网站抓取——>链接提交
你会发现,百度提供了多种链接提交的方式:
自动提交:
主动推送(实时)、自动推送、 sitemap
手动提交:。
下面主要演示通过java代码进行主动推送。
第一步:主动推送接口
来到主动推送页面,我们可以看到如下页面展示:
第二步:如何推送
百度站长给出了,相关的使用说明文档
http://zhanzhang.baidu.com/college/courseinfo?id=267&page=2#h2_article_title14
给出的Post推送示例如下:
post推送示例
-------------
POST /urls?site=www.58.com&token=edk7ychrEZP9pDQD HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Length: 83
------------------
http://www.example.com/1.html
http://www.example.com/2.html
其中post:对应的推送地址;
User-Agent:用户带来;
Host:主机;
Content-Length内容长度;
接着是推送的地址
其中User-Agent、Content-Length需要我们在表头继续设置。
第三步:Go程序进行推送
利用 Gin进行推送
package main
import (
"bytes"
"fmt"
"net/http"
"strings"
)
func main() {
// 定义URL列表
urls := []string{"http://www.example.com/1.html", "http://www.example.com/2.html"}
// 将URL列表转换为字符串,并用换行符分隔
urlsData := strings.Join(urls, "\n")
// 设置请求URL
url := "http://data.zz.baidu.com/urls?site=https://www.i8n.com&token=CpdMkE6ArPbK1Uwl"
// 创建HTTP客户端
client := &http.Client{}
// 创建POST请求
req, err := http.NewRequest("POST", url, bytes.NewBufferString(urlsData))
if err != nil {
fmt.Println("创建请求失败:", err)
return
}
// 设置请求头
req.Header.Set("Content-Type", "text/plain")
// 发送请求
resp, err := client.Do(req)
if err != nil {
fmt.Println("发送请求失败:", err)
return
}
defer resp.Body.Close()
// 读取响应内容
body := new(bytes.Buffer)
_, err = body.ReadFrom(resp.Body)
if err != nil {
fmt.Println("读取响应失败:", err)
return
}
// 打印响应内容
fmt.Println("响应状态码:", resp.Status)
fmt.Println("响应内容:", body.String())
}
代码说明:
- 定义URL列表:将 Ruby 代码中的 urls 数组转换为 Go 中的 []string。
- 将URL列表转换为字符串:使用 strings.Join 将 URL 列表转换为字符串,并用换行符分隔。
- 设置请求URL:将 Ruby 代码中的 URI.parse 解析后的 URL 赋值给 url 变量。
- 创建HTTP客户端:使用 http.Client 创建一个 HTTP 客户端。
- 创建POST请求:使用 http.NewRequest 创建一个 POST 请求,并将 URL 列表字符串作为请求体。
- 设置请求头:使用 req.Header.Set 设置 Content-Type 为 text/plain。
- 发送请求:使用 client.Do 发送请求,并获取响应。
- 读取响应内容:使用 bytes.Buffer 读取响应内容,并打印响应状态码和内容。