首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nodejs下载bing的壁纸

使用nodejs下载bing的壁纸
EN

Stack Overflow用户
提问于 2012-12-01 13:41:12
回答 1查看 453关注 0票数 1

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

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

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

示例图片src是:"1920x1200.jpg“。

这是我的核心代码

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-01 16:13:32

切换到

代码语言:javascript
复制
path: url.parse(file_url).path,

将包含查询字符串并为您获取整个文件。

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

代码语言:javascript
复制
console.log(url.parse(file_url));

如下所示:

代码语言:javascript
复制
{
    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是:

代码语言:javascript
复制
http://www.bing.com/az/hprichbg

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13660006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档