我目前正在尝试一个项目,该项目需要将我的网上商店愿望清单的内容推送到数据库中,以便在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文件。
如果您能帮助我解决此问题的解决方案,我将不胜感激:-)。
答案 0 :(得分:0)
在您的具体示例中,问题是所选元素的文本为空。如果您在浏览器中运行脚本并执行该脚本,该脚本也会返回""
。挂断prev()
呼叫后,名称会在浏览器中列出,因此您的cheerio代码中也应列出。
console.log($(this).text());