我们为了方便百度快速感知到我们的新页面,可以向百度搜索主动推送资源,缩短爬虫发现网站链接的时间。
不过百度网站上的样例没有 Node.js 相关语言的,这里我可以提供一个实例。
使用 API 方式提交时,其实可以同时提交多个 url 的,将多个 url 换行隔开。
/**
* 向百度推送链接
*/
const sendBdData = async (
urls: string[]
): Promise<{
/**
* 成功的条数
*/
success: number,
/**
* 剩余可推送条数
*/
remain: number,
}> => {
const SITE = "https://www.xiabingbao.com"; // 替换为网站域名
const TOKEN = "更换为自己网站的token"; // 替换为百度站长平台获取的token
const response = await fetch(`http://data.zz.baidu.com/urls?site=${SITE}&token=${TOKEN}`, {
method: "POST",
body: urls.join("\n"),
headers: {
"Content-Type": "text/plain",
},
});
const { success, remain } = await response.json();
return { success, remain };
};
export default sendBdData;
示例中,我们使用了 fetch 函数,这个函数是浏览器自带的,在 Node.js 中也可以使用。
在推送数据后,如果推送成功,会得到两个参数:
- success: 表示本次成功推送了几天数据;
- remain: 表示今日当天剩余的可推送 url 条数;
如果推送失败,或者当天超出额度限制,就会返回 error 和 message 参数。
更多相关问题,可以查看百度官网文档:如何使用API提交?