通过nodejs主动向百度搜索引擎提交链接
在百度站长工具中有一中方式向百度搜索引擎提交链接的方式,就是主动推送,这个方式应该和发布文章合并到一起,当文章生成保存到数据库之后,即文章发布成功,应该自动生成链接推送到百度搜索引擎,这样方便百度的收录。在百度的站长工具中有提交方式,如下图所示。
在示例中他给出了php和ruby的推送方式,下面我来写一下通过nodejs来想其推送的示例
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的示例
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向百度搜索引擎主动提交链接的方式,如有不对之处欢迎指正。