使用nodejs来下载bing的壁纸

我想通过node.js下载bing的今天的壁纸,

首先, 我可以从其他网站下载大图片

但是我无法从bing下载图片,即使我可以在浏览器中看到图片

示例图片src是:“http://www.bing.com/az/hprichbg?p=rb%2fYosemiteSnow_EN-US7191433727_1920x1200.jpg”

这是我的核心代码

var download_file_httpget = function(file_url) { var options = { host: url.parse(file_url).host, port: 80, path: url.parse(file_url).pathname, headers: {} }; var file_name = '11.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'); }); }); }; 

例如,原始图片大小为200k,但只下载了20k,而且我怀疑这是因为头部中的“引用者”,当我添加头部时,问题在某些其他网站中固定,但仍然存在不为工作而工作

切换到

 path: url.parse(file_url).path, 

将包含查询string并获取整个文件。

下载的文件是一个HTML文本文件 ,而不是jpeg。

 console.log(url.parse(file_url)); 

显示这个:

 { protocol: 'http:', slashes: true, host: 'www.bing.com', hostname: 'www.bing.com', href: 'http://www.bing.com/az/hprichbg?p=rb%2fYosemiteSnow_EN-US7191433727_1920x1200.jpg', search: '?p=rb%2fYosemiteSnow_EN-US7191433727_1920x1200.jpg', query: 'p=rb%2fYosemiteSnow_EN-US7191433727_1920x1200.jpg', pathname: '/az/hprichbg', path: '/az/hprichbg?p=rb%2fYosemiteSnow_EN-US7191433727_1920x1200.jpg' } 

由于您使用的是pathname ,因此url为:

 http://www.bing.com/az/hprichbg 

所以Bing不知道要返回哪个图像。