Nodejs ·

通过nodejs主动向百度搜索引擎提交链接

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

参与评论