我目前正在尝试一个项目,我需要将我的在线商店愿望清单的内容推送到数据库,以便在anguar应用程序中显示它。
我目前正在努力的步骤,包括抓取用户当前所在的页面(基本上是他的愿望清单)并将其作为json文件导出(最终直接将其推送到firebase实时数据库中)。
基本上我想导出愿望清单的以下元素: - 产品图片网址 - 产品价格 - 产品标题 - 产品页面网址
当我在其中一些类上运行我的代码时,我要么在我的控制台中得到空值或只有一个值。
此外,我还没有想出如何将控制台中记录的数据保存为json文件。
我随机在线商店做了一些测试。下面是我尝试过的一个例子,在这里我尝试提取产品名称并将其打印到控制台中。
var request = require('request');
var cheerio = require('cheerio');
request('https://www.peek-cloppenburg.de/herren/', timeout = 1000, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('p.productTile-brand.qa-product-tile-brand').each(function(i, element){
var a = $(this).prev();
console.log(a.text());
});
}
});
当我运行它时,我在控制台中得到空白文本。我想在控制台中打印页面的产品名称并将它们保存为json文件。
如果你能帮我解决这个问题,我将不胜感激:-)。
在您的具体示例中,问题是,所选元素的文本为空。如果您在浏览器中运行脚本并执行它,它也将返回""
。在删除prev()
-call之后,名称会在浏览器中列出,所以在你的cheerio代码中也应如此。
console.log($(this).text());