百度网址收录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
欢迎关注微信公众号,留言交流。

翻译: