我想通过node.js下载bing今天的壁纸,
首先,我可以从其他网站下载大图片,
但是我不能从bing下载图片,即使我可以在浏览器中看到图片
示例图片src是:"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');
});
});
};例如,原始图片的大小是200 k,但它只下载了20k,我怀疑这是因为标题中的“referer”,当我添加标题时,一些oher站点中的问题修复了,但是它仍然不适用于bing
发布于 2012-12-01 16:13:32
切换到
path: url.parse(file_url).path,将包含查询字符串并为您获取整个文件。
下载的文件是一个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不知道该返回哪个图像。
https://stackoverflow.com/questions/13660006
复制相似问题