在服务器上刮取一系列网址以获取图像

时间:2015-02-09 10:16:02

标签: javascript node.js web-scraping cheerio

我正在尝试使用带有cheerio和request的nodejs来搜索包含大文件夹的网站,该网站位于网址http://my.aup.edu/files/pictures/picture-35933.jpg处。从页面中提取一个图像看起来像这样


var request = require("request"),
    cheerio = require("cheerio"),
    urls = [];
request('', function(err, resp, body){
    if (!err && resp.statusCode == 200 ) {
        var $ = cheerio.load(body);
        $('body.img').each(function(){
           var url = $(this).attr("src");
            urls.push(url);
        
        });
        
        console.log(urls)
    }
    
});

此程序完成将URL记录到控制台,但不会保存图片。然而,网站上的文件扩展名有点奇怪,因为即使链接是http://my.aup.edu/files/pictures/picture-35933.jpg,并非所有扩展名1-99999都有图像..有些只是重定向到不同的页面。我可以在url的末尾使用带有math.random()的if语句来检查它是否包含img然后下载它。如果可能,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您执行http HEAD请求而不是http GET,那么您可以查看内容类型并(希望)找出您是否有图像。