百度资源平台API,你还在手动提交链接吗?

别再每天掐着点登录后台、复制粘贴几十个链接了。
上周我帮一个做家居团购的客户看数据,他们新上了32个活动页,靠人工提交花了整整两天——结果百度还没来得及抓取,活动就过期了。

调用API前,你必须准备好的三样东西

第一,一个能登录百度资源平台的账号。
第二,这个账号得是目标网站的“站长”或已被添加进“用户管理”,并拥有API调用权限。光有账号不行,权限得对得上。
第三,也是最关键的:Access Token(访问令牌)。它不是注册就有的,得你自己去申请——登录资源平台 → 进入「API提交」页面 → 点「获取密钥」,系统会生成一串字符。每次调用API,都得把它塞进请求里,就像开门要刷门禁卡。

真实案例:一个做本地生活服务的团队,技术同事用运营同事的密钥测试,一直报“401权限错误”。后来才发现,他自己的百度账号根本没被加进该站点的用户列表里。平台认的是“人+权限”,不是“谁手上有密钥”。

如何发起你的第一次API调用?

拿到密钥后,第一步不是写代码,是先发一次最简单的请求,确认通路没问题。
百度提交链接的API地址是 http://data.zz.baidu.com/urls,用POST方式发过去就行。你需要带两样东西:

  • 请求头(Header)里放 Content-Type: text/plain 和你的密钥(放在URL参数里);
  • 请求体(Body)里是一堆纯文本URL,一行一个,不能套JSON,不能加引号,也不能用逗号分隔。

服务器返回的是一段JSON,里面会告诉你成功了几条、失败了几条、具体错在哪。第一次看到"success":12,比收到工资条还踏实。

提交链接API实战:避开这些坑

/urls接口看着简单,但真踩进去才知道水有多深。

第一个坑:额度不是无限的。你在资源平台后台能看到当天还能提交多少条,超了就石沉大海,连错误提示都不给。

第二个坑:不是所有链接都能交。百度只收你自家站点下、能正常打开、没被robots.txt拦住、也没加noindex的页面。提交一堆404或者带#锚点的链接?等于白忙活。

真实案例:一个做汽车资讯的客户,自动提交脚本跑了一周,“成功数”始终是0。查日志发现,CMS导出的URL里混进了大量带?from=wechat#comment-xxx的变体链接。百度直接过滤掉了。删掉参数清洗逻辑后,第二天提交成功率就拉满了。

除了提交链接,这些API也能帮你大忙

更新内容不用等百度自己发现。用“更新推送”接口,告诉它:“这篇稿子刚改了标题和价格,快来看看”。适合电商、新闻、招聘这类天天变的站点。

删页面也别干等着。用“删除链接”接口主动报备死链,百度清理得比你手动在后台删快得多,权重也不容易漏。

还有个容易被忽略的:“获取配额”接口。每天早上跑一次,就知道今天还能提交多少条、更新多少次、删几个链接。大促前心里有数,不至于关键时刻卡在配额用完。

如何设计一个稳定的自动化提交方案?

稳定,不是“能跑通一次”,而是“半夜三点发布新文章,早上六点就能被百度抓到”。

推荐两个靠谱的触发方式:

  • Sitemap驱动:程序每天凌晨扫一遍你网站根目录下的 sitemap.xml,比对上次提交记录,只把新增的URL推过去;
  • CMS钩子驱动:在WordPress、Dedecms或者你用的任何后台里,加一段发布后自动执行的脚本,新页面一上线,URL立刻出发。

重点不在“推”,而在“兜底”:

  • 每次调用必须记日志,存成文件或写进数据库;
  • 遇到502、超时、配额满,得自动重试(最多三次);
  • 同一个URL别反复交,本地维护个已提交清单,哪怕只是个简单的txt文件也行。

今天下班前,就能完成这个具体操作

不用等排期、不用找开发,你现在就能亲手跑通第一单:

  1. 打开百度资源平台,选中你的网站 → 点右上角「用户管理」→ 确保你自己的账号在列表里且权限勾选了「API调用」→ 去「API提交」页面,点「获取密钥」,复制那串token;
  2. 打开电脑自带的终端(Mac用“终端”,Windows用PowerShell);
  3. 在桌面新建一个文件夹,里面放两个东西:
    • urls.txt:用记事本编辑,每行写一个你网站的真实页面,比如
      https://www.yourdomain.com/product/123  
      https://www.yourdomain.com/news/456  
      
    • 然后在终端里,cd进这个文件夹,粘贴运行这行命令(把your_access_tokenwww.yourdomain.com替成你自己的):
      curl -H "Content-Type: text/plain" -X POST "http://data.zz.baidu.com/urls?site=www.yourdomain.com&token=your_access_token" --data-binary @urls.txt  
      
  4. 看返回结果——如果出现"success":2,说明两条都交进去了。截图发给同事,今晚就能睡个好觉。