百度搜索资源平台(百度站长平台)提供资源提交的功能,我们可以在后台手动提交,也可以通过 API 提交,从而加快百度收录速度,对百度 SEO 有一定的好处。API 提交示例百度提供了 PHP 版、curl 版、post 版和 ruby 版,今天老王就分享一个 Python 版的推送代码。
一、Python 版提交示例
直接上代码,将 post_baidu_uri
改成你的接口调用地址即可:
def push_url(post_url): headers = { 'User-Agent': 'curl/7.12.1', 'Host': 'data.zz.baidu.com', 'Content - Type': 'text / plain', 'Content - Length': '83' } post_baidu_uri = 'http://data.zz.baidu.com/urls?site=https://laowangblog.com&token=******' # 将列表进行拼接 post_data = '\n'.join(post_url) res = requests.post(url=post_baidu_uri, headers=headers, data=post_data) save_push_log("result: " + str(res.status_code) + res.text + " url: " + post_url[0])
其中 post_url 是一个列表,形如:post_url = ['https://laowangblog.com/aliyundrive-apply.html', https://laowangblog.com/ulcoud-1024-2020.html]
,根据 res
的结果可以判断是否推送成功,返回如下则说明成功:
result: 200{"remain":9975,"success":1}
二、其他版本提交示例
百度搜索资源平台 API 提交功能入口处百度官方提供了 4 种提交示例,这里也分享一下。
1、PHP 版
$urls = array( 'http://www.example.com/1.html', 'http://www.example.com/2.html', ); $api = 'http://data.zz.baidu.com/urls?site=laowangblog.com&token=******'; $ch = curl_init(); $options = array( CURLOPT_URL => $api, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => implode("\n", $urls), CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), ); curl_setopt_array($ch, $options); $result = curl_exec($ch); echo $result;
2、curl 版
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://laowangblog.com&token=******"
3、post 版
POST /urls?site=https://laowangblog.com&token=******HTTP/1.1 User-Agent: curl/7.12.1 Host: data.zz.baidu.com Content-Type: text/plain Content-Length: 83 http://www.example.com/1.html http://www.example.com/2.html
4、ruby 版
require 'net/http' urls = ['http://www.example.com/1.html', 'http://www.example.com/2.html'] uri = URI.parse('http://data.zz.baidu.com/urls?site=https://laowangblog.com&token=******') req = Net::HTTP::Post.new(uri.request_uri) req.body = urls.join("\n") req.content_type = 'text/plain' res = Net::HTTP.start(uri.hostname, uri.port) { |http| http.request(req) } puts res.body