百度网址收录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
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。