百度網址收錄api Python示例

衆所周知,國內搜索引擎百度市佔率第一,順利收錄的話,有助於提升站點影響力。本站百度N個月過去了一直未收錄,也不知道什麼原因,反正國外的Google、Bing收錄了,聽天由命吧。經常手動提交喫不消,關鍵那個手動提交每次限定20個地址,驗證的時候還要把圖片轉成水平,百度辛苦了,我也辛苦了。

按照百度的文檔示例,寫了個簡單python程序提交網址。腳本如下:

 1    #!/usr/bin/env python
 2
 3    import requests
 4
 5    web_site = "https://xxx.com"
 6    token = "your_baidu_api_token"
 7
 8    # api url 一定要格式化成這樣的地址,自己用params的話,百度會教你做人的^_^
 9    baidu_api_url = "http://data.zz.baidu.com/urls?site={}&token={}".format(web_site, token)
10
11    header = {
12        "User-Agent": "curl/7.12.1",
13        "Host": "data.zz.baidu.com",
14        "Content-Type": "text/plain",
15    }
16
17    # urls.txt 保存你的提交地址,每行一個。和此程序在同一目錄
18    with open("urls.txt") as f:
19        urls = f.readlines()
20    urls = "".join(urls)
21
22    try:
23        r = requests.post(baidu_api_url, headers=header, data=urls)
24        print("推送地址:", r.url)
25        if r.status_code == 200:
26            print("推送成功:", r.json())
27        r.raise_for_status()
28    # 捕獲各種錯誤:
29    except requests.exceptions.HTTPError as errh:
30        print("Http Error:", errh)
31    except requests.exceptions.ConnectionError as errc:
32        print("Error Connecting:", errc)
33    except requests.exceptions.Timeout as errt:
34        print("Timeout Error:", errt)
35    except requests.exceptions.RequestException as err:
36        print("OOps: Something Else", err)

測試運行, baidu.py就是上面的程序, urls.txt裏面每行一個待提交的地址

(.venv) ➜  mephisto.cc git:(main) ✗ python3 baidu.py
推送地址: http://data.zz.baidu.com/urls?site=https://mephisto.cc&token=xxxxx
推送成功: {'remain': 2913, 'success': 29}

上面的意思爲:29個提交成功,剩餘可提交配額爲2913,看起來比手動提交的限額20個多很多。注意,每次urls.txt裏面填寫新的待提交的地址,原因在文末有介紹。

百度文檔摘錄:

API推送:最爲快速的提交方式,建議您將站點當天新產出鏈接立即通過此方式推送給百度,以保證新鏈接可以及時被百度收錄

1. 使用API推送功能會達到怎樣效果

  • 及時發現:可以縮短百度爬蟲發現您站點新鏈接的時間,使新發布的頁面可以在第一時間被百度收錄
  • 保護原創:對於網站的最新原創內容,使用API推送功能可以快速通知到百度,使內容可以在轉發之前被百度發現

2. 在什麼時機使用API推送提交功能效果最明顯?

  • 頁面鏈接產生或發佈時立即提交,這樣效果是最好的

3. 重複提交已經發布的鏈接會有什麼問題?

  • 會有兩個影響。第一,將浪費您提交的配額,每個站點每天可提交的數量是有限制的,如果您都提交了舊鏈接,當有新鏈接時可能因爲配額耗盡無法提交。第二,如果您經常重複提交舊鏈接,我們會下調您的配額,您可能會失去API推送功能的權限
最後修改於: Monday, August 28, 2023

翻譯: