最近公司的一个项目即将上线,现在需要在每个城市预先插入一些图片数据,我的想法是通过百度图片解析页面上的image标签然后将图片存到本地然后再上传到我们自己的服务器上,请问有这方面经验的同学这种可行性,以及请推荐我相关的node组件(请求,解析html)。
13 回复
请求可以用 spidex
。
然后解析html可以用 cheerio
。
可以看下这里http://xcoder.in/2013/12/28/xplan-spider-doc/#Cheerio%E6%A8%A1%E5%9D%97*
/**
* Created by XadillaX on 14-3-31.
*/
var spidex = require("spidex");
var fs = require("fs");
spidex.get("http://cnodejs.org/public/images/logo.png", function(html, status, respHeader) {
console.log(html);
fs.writeFile("a.png", html, { encoding: "binary" });
}, "binary");
我爬过,直接http下载,没有任何问题。spidex是一个爬虫,不只是爬图片用的,对你的需求多余了 var fs = require(“fs”); var http = require(“http”)
function downloadImag(url){ var date = new Date(); var file_name = (date.getMonth()+1).toString() + '-' + date.getDate().toString()+"-"+date.getTime(); file_name += '.jpg’; var file = fs.createWriteStream("./tmp/"+file_name); http.get(url,function(res) { console.log(res.headers)
res.on('data',function(data) {
file.write(data);
}).on('end',function() {
file.end();
console.log('download success');
});
});
}