在百度站长工具中有一中方式向百度搜索引擎提交链接的方式,就是主动推送,这个方式应该和发布文章合并到一起,当文章生成保存到数据库之后,即文章发布成功,应该自动生成链接推送到百度搜索引擎,这样方便百度的收录。在百度的站长工具中有提交方式,如下图所示。
在示例中他给出了php和ruby的推送方式,下面我来写一下通过nodejs来想其推送的示例
代码语言:javascript复制router.post('/builder',function (req,res){
//console.log(req);
var params = req.body;
//对应配置post推送的接口说明
var options = {
host: "data.zz.baidu.com",
path: params.curlopt_url,//接口的调用地址
method: "post",
"User-Agent": "curl/7.12.1",
headers: {
"Content-Type": "text/plain",
"Content-Length": params.curlopt_postFields.length
}
};
var req = http.request(options, function (resp) {
resp.setEncoding("utf8");
resp.on("data", function (data) {
res.end(JSON.stringify(data));
console.log("data:", data); //返回的数据
});
});
req.write(params.curlopt_postFields);
req.end();
});
在这里我写了一个接口的形式,通过页面将接口调用地址和推送地址传递到后台进行提交,正常过程应该是写在文章发布成功之后进行。
下面再写一个批量向百度提交url的示例
代码语言:javascript复制submitUrlToBaidu(option){
var urlArray = option.urlArray;//url数组
var interfacePath = option.interfacePath;//接口调用地址
var callback = option.success;//调用完成后的回调函数
var urlList = '';
if(urlArray.length>1||Array.isArray(urlArray )){
urlList = urlArray.join("n");
}else{
urlList = urlArray ;
}
var options = {
host: "data.zz.baidu.com",
path: interfacePath,//接口的调用地址
method: "post",
"User-Agent": "curl/7.12.1",
headers: {
"Content-Type": "text/plain"
}
};
var httpReq = http.request(options, function (resp) {
resp.setEncoding("utf8");
resp.on("data", function (data) {
callback(data);
console.log("data:", data); //返回的数据
});
});
httpReq.write(urlList);
httpReq.end();
}
上述方法封装成了一个工具类,只需要传入相应的参数即可.
上面的方式就是如何通过nodejs向百度搜索引擎主动提交链接的方式,如有不对之处欢迎指正。