功能概述 我正在从不安全的站点(http)抓取缩略图URL数据的字符串,下载图像,然后将这些图像上传到安全的网站服务器(https)。我正在使用cheerio和bluebird通过映射的承诺请求来抓取网站URL的列表,我的代码如下所示。我将缩略图URL图像字符串数据从网站URL的推送到存储在“ json”数组中的数组,然后将包含所包含json数据的文件写入suppImages.json文件。
我要解决的当前问题 它们是我正在抓取的网站网址中包含的可变数量的缩略图(每个缩略图约20张)。现在,我的代码已设置为将所有缩略图URL聚合到一个数组中。我想我的代码要做的是将每个网站URL 的特定缩略图URL解析为单独的数组。因此,基本上,不是希望输出看起来像来自所有网站URL的汇总数据的一滴,我希望它们是多个数组,每个数组包含在给定网站URL 。
我的代码
let fs = require('fs')
const requestPromise = require('request-promise');
const Promise = require('bluebird');
const cheerio = require('cheerio');
const suppURL = require('./output.json');
const urls = suppURL.urli;
console.log("Currently reading URLs from buttons of Realty Warp"+urls)
var json = { pictureThumb: []};
scraper = () => Promise.map(urls, requestPromise)
.map((htmlOnePage, index) => {
const $ = cheerio.load(htmlOnePage);
var linksPic = $(".thumb img");
$(linksPic).each(function(i, link){
var sop = $(this).attr('src');
console.log("sop:" + sop)
json.pictureThumb.push(sop);
});
fs.writeFile('suppImages.json', JSON.stringify(json, null, 6), function(err){
console.log('wrote file');
})
return console.log("URL"+index+':Scrape Complete');
})
.then()
.catch((e) => console.log('We encountered an error' + e));
scraper()