百度搜索API使用教程:让你的博客SEO效率翻倍
标签:SEO优化,百度搜索,API教程,技术教程
百度搜索API能干啥?
说起来都是泪啊。去年我有个站,文章写了一大堆,结果百度一直不收录。我每天手动去搜索资源平台提交链接,提交到手抽筋。后来才知道有个API接口,可以批量提交,还能查收录状态——早知道不白受那罪了。
百度搜索资源平台(现在叫百度搜索工具箱)其实提供了挺多API接口的,只是大部分人不知道。今天就把我踩过的坑分享出来,让你们少走弯路。
API能帮你做什么?
简单说就是三件事:
第一,URL批量提交。 不用手动一条条扔链接了,可以写个脚本自动提交当天发布的所有文章。我现在每天早上起床,脚本已经跑完了,特爽。
第二,收录查询。 想知道某篇文章被收录没?调用接口查,比site命令准多了。site命令有时候不准,但API返回的数据是实打实的。
第三,流量分析。 关键词排名、点击量这些数据都有接口可以拿,虽然没后台那么详细,但够用了。
准备工作:先拿到你的Token
这一步卡死了不少人,我也是研究半天才搞明白。
1. 登录百度搜索资源平台(没账号的先注册,要验证网站所有权)
2. 进入「用户中心」→「Access Token」
3. 点击「获取Token」,会给你一串字符
这个Token要保管好,别放公开的地方。用代码调用的时候,建议存环境变量里。
Python代码实战:批量提交URL
先安装依赖:
```bash
pip install requests
```
然后是核心代码:
```python
import requests
import json
你的Token
ACCESS_TOKEN = "你的Access_Token"
SITE_URL = "https://www.yourblog.com"
批量提交URL
def batch_submit(urls):
api_url = "https://data.zz.baidu.com/urls?site={}&token={}".format(SITE_URL, ACCESS_TOKEN)
headers = {
"Content-Type": "application/json",
"User-Agent": "curl/7.12.1"
}
data = json.dumps(urls)
response = requests.post(api_url, data=data, headers=headers)
return response.json()
使用示例
urls = [
"https://www.yourblog.com/post/1.html",
"https://www.yourblog.com/post/2.html",
"https://www.yourblog.com/post/3.html"
]
result = batch_submit(urls)
print(result)
```
返回结果大概是这样:
```json
{
"remain": 1000,
"success": 3,
"not_same_site": [],
"not_valid": []
}
```
`remain`是当天还剩多少次提交机会,`success`是成功提交的条数。免费账号每天能提交500条,认证后能到2000条。
收录查询接口怎么用
这个接口可以查指定URL的收录状态,挺实用的:
```python
def check_index(url):
api_url = "https://data.zz.baidu.com/urls?site=你的域名&token=你的Token"
headers = {"Content-Type": "text/plain"}
response = requests.post(api_url, data=url.encode('utf-8'), headers=headers)
return response.json()
查询单条
result = check_index("https://www.yourblog.com/post/123.html")
print(result)
```
不过这个接口查完会顺便提交一次,不是纯查询。需要注意下每天的配额。
进阶玩法:自动监控脚本
我给自己写了个脚本,每小时跑一次,主要干两件事:
1. 检查最新发布的10篇文章有没有被收录
2. 没收录的自动重新提交
代码有点长,核心逻辑贴一下:
```python
import time
import schedule
def check_and_resubmit():
# 获取最新文章列表(假设你有个函数从数据库拿)
recent_posts = get_recent_posts(10)
for post in recent_posts:
url = post['url']
if not is_indexed(url): # 查收录状态
print(f"文章未收录,准备重提:{url}")
submit_url(url)
else:
print(f"文章已收录:{url}")
print("检查完成,等待下次运行...")
每小时执行一次
schedule.every().hour.do(check_and_resubmit)
while True:
schedule.run_pending()
time.sleep(60)
```
现在我基本不用管收录的事了,脚本自动搞定。写完文章扔进队列,脚本会负责后续所有事。
踩坑记录
说几个我踩过的坑,你们引以为戒:
1. Token过期了不知道
Access Token有效期好像是30天还是多久来着,反正会过期。过期了接口就报401错误。最好写个定时任务检查一下token有效性。
2. 提交频率太高被限流
虽然配额是每天500条,但短时间内请求太频繁会被临时封。我之前测试的时候一秒提交了20条,结果被封了10分钟。
3. URL格式要严格
路径里带中文字符的需要URL编码,不然会报400错误。建议统一用英文slug。
4. 不是所有接口都免费
我上面说的这些基础功能都是免费的,但有些高级接口(比如站点天级收录)要付费,看需求吧。
常见问题
Q: API提交了文章就一定会被收录吗?
A: 不会,提交只是告诉百度「这里有新内容」,收不收录还是要看百度的心情。内容质量、站点权重都是影响因素。
Q: 每天500条的配额够用吗?
A: 日更博客完全够用。如果你批量采集站可能不够,可以考虑认证或者申请天级收录配额。
Q: 报错{"error":401}是什么原因?
A: Token无效或过期了,检查一下Token是否正确,或者重新获取一个。
Q: 能批量查所有文章的收录状态吗?
A: 技术上可以,但没必要。每次查询都会占用提交配额,建议只查最近7天发布的文章。
Q: 有没有现成的工具可以不用写代码?
A: 百度官方有个URL提交工具是网页版的,适合不想写代码的人。但没法批量,也没法自动化。
推荐阅读
有更多问题可以加我微信:15207283116,看到会回复。
需要了解更多使用技巧?
扫码加我微信,我来给你详细解答!
微信号:15207283116
(博客来的朋友优先通过!)
—— 本文仅供参考,具体以实际情况为准 ——
还木有评论哦,快来抢沙发吧~