百度api推送的简明上手教程

头图©Copyright:BiliBili@KoraCola“我的回忆是一辆绿皮火车”
自从逆天百度更改了remain限额之后,普通开发者每天的api推送量从3000条变成了10条。然而使用api提交本身就是给百度打工之把饭喂到百度爬虫嘴里的操作,这样的禁令十分发挥了百度作为互联网大厂避免“用户污染百度搜索结果”的风范,巩固了百度搜索靠谱有效的企业形象,赢得了众多个人站长的好感,充分发挥了李*宏本人的幽默。

既然api玩法改了,那之前批量提交的方法自然也行不通了。虽然修改并不难,但是发文吐槽&提供思路的热情让我还是水了一贴。

生成sitemap

百度有一套MIP的移动网络加速技术,因为自家的技术受到鼓励,故而使用这一方法提交可以提高网站在百度搜索中的权重。
在这里,我使用的是Holmesian大佬开发的typecho插件
https://holmesian.org/AMP-for-Typecho
启用成功之后,您可以在自己网站根目录下的mip_sitemap.xml看到生成的mip站点地图

提交

由于Holmesian大佬开发这一插件已经是很古早的时期了,故而插件中的提交方式早已失效,这也是百度一步步收紧提交政策所致。
在这里,我们使用的是百度站长提供的官方方式进行修改:
https://ziyuan.baidu.com/linksubmit/index

代码主要是获取了之前生成的mip_sitemap,提取了url后随机抽取了10条以达成在较长的时间尺度上均匀推送的结果,避免了手动修改的麻烦。

<?php
// 读取 MIP Sitemap 文件内容,需要换成您自己的域名
$xmlString = file_get_contents('https://uranium92.tech/mip_sitemap.xml');

$xml = new SimpleXMLElement($xmlString);
$urls = array();

foreach ($xml->url as $url) {
    $urls[] = (string)$url->loc;
}

// 从所有 URL 中随机选择十条
$randomUrlsIndexes = array_rand($urls, 10);
$randomUrls = array_intersect_key($urls, array_flip($randomUrlsIndexes));

// 需要换成您自己的api,复制粘贴即可
$api = 'http://data.zz.baidu.com/urls?site=https://uranium92.tech&token=*********';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $randomUrls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

?>

自动执行

您可以在网站根目录下创建baidu_upload.php,将上面的内容复制进去,并添加计划任务以实现自动推送

php 您存储baidu_upload.php的位置

故障排除



当超出余额后,会返回如下json

{"error":400,"message":"over quota"}
最后修改:2024 年 03 月 10 日
请我喝杯可乐?