CNode

nodejs下载图片时遇到防外链的图片无法下载

Rrppig42发布于14 年前最后回复14 年前3 回复7654 浏览0 收藏

rt,我用nodejs下载比方说新浪相册这种没做防外链的图片时都没有问题,但是去下载比如百度这种防外链的图片时,都下载不下来,有什么解决方案吗? 我的关键代码如下,

var download_file_httpget = function(file_url) {
var options = {
	host: url.parse(file_url).host,
	port: 80,
	path: url.parse(file_url).pathname

};

//use the date as the file name
var date = new Date();
var file_name = (date.getMonth()+1).toString() + '-' + date.getDate().toString();
file_name += '.jpg';
var file = fs.createWriteStream(download_path + "\\" + file_name);

http.get(options,function(res) {
	res.on('data',function(data) {
		file.write(data);
	}).on('end',function() {
		file.end();
		console.log('download success');
	});
});

};

查看回复

回复 (3)

L
liuj0225#1·14 年前

加上referer试试

R
rppig42#2·14 年前
引用 liuj0225加上referer试试

下载百度的图片加了referer以后是就可以了,但下载bing首页wallpaper就不行! 服务器能够识破http头的伪造请求吗

L
liuj0225#3·14 年前
引用 liuj0225加上referer试试

@rppig42 http头都是由客户端构建的,应该问题不大,你可以用firebug看一下浏览器请求图片的header头,完全照搬过来,看看是否与User-Agent这些有关

参与回复
登录后即可参与回复。登录