Назначение - это приложение узла командной строки, которое удаляет некоторые данные с определенного сайта и сохраняет эти данные в файл CSV.
Я использую scrape-it для очистки данных и успешного получения всех необходимых мне данных, но я изо всех сил пытаюсь выяснить, как добавить каждый URL (сохраненный в URL-адресах).) в соответствующий им объект рубашек, который представляет собой массив объектов.
Вот то, что у меня есть до сих пор.
const scrapeIt = require("scrape-it");
const mainURL = "http://shirts4mike.com/";
scrapeIt(`${mainURL}shirts.php`, {
pages: {
listItem: ".products li",
name: "pages",
data: {
url: {
selector: "a",
attr: "href"
}
}
}
})
.then(({ data }) => {
const urls = data.pages.map(page => `${mainURL}${page.url}`);
console.log(urls);
const shirtCalls = urls.map(url =>
scrapeIt(url, {
name: {
selector: ".shirt-picture img",
attr: "alt"
},
image: {
selector: ".shirt-picture img",
attr: "src"
},
price: {
selector: "span.price"
}
})
);
return Promise.all(shirtCalls);
})
.then(shirtResults => {
const shirts = shirtResults.map(shirtResult => shirtResult.data);
console.log(shirts);
});
Итак, вывод, который мне дают "рубашки", равен
[ { name: 'Logo Shirt, Red',
image: 'img/shirts/shirt-101.jpg',
price: '$18' },
{ name: 'Mike the Frog Shirt, Black',
image: 'img/shirts/shirt-102.jpg',
price: '$20' },
{ name: 'Mike the Frog Shirt, Blue',
image: 'img/shirts/shirt-103.jpg',
price: '$20' },
{ name: 'Logo Shirt, Green',
image: 'img/shirts/shirt-104.jpg',
price: '$18' },
{ name: 'Mike the Frog Shirt, Yellow',
image: 'img/shirts/shirt-105.jpg',
price: '$25' },
{ name: 'Logo Shirt, Gray',
image: 'img/shirts/shirt-106.jpg',
price: '$20' },
{ name: 'Logo Shirt, Teal',
image: 'img/shirts/shirt-107.jpg',
price: '$20' },
{ name: 'Mike the Frog Shirt, Orange',
image: 'img/shirts/shirt-108.jpg',
price: '$25' } ]
Но я пытаюсь сделать так, чтобы конечный результат выглядел следующим образом ...
[ { name: 'Logo Shirt, Red',
image: 'img/shirts/shirt-101.jpg',
price: '$18',
url: 'http://shirts4mike.com/shirt.php?id=101' //which is at urls[0]
},
{ name: 'Mike the Frog Shirt, Black',
image: 'img/shirts/shirt-102.jpg',
price: '$20',
url: 'http://shirts4mike.com/shirt.php?id=102' //urls[1]
}, //...etc etc
Надеюсь, что все это имеет смысл, все еще очень плохо знакомо с обещаниями (и узлами), поэтомуЯ чувствую себя немного не в своей тарелке.Заранее спасибо!