首页 > 解决方案 > 用cheerio清空输出

问题描述

在过去的几天里,我一直在玩 Node 和 CheerioJS,并从中获得乐趣。我想抓取这个网页,但由于某种原因,我得到了一个空字符串。很奇怪,因为这种确切的方法似乎适用于其他网站。

这是我设置的:

const rp = require('request-promise');
const cheerio = require('cheerio');
const bread = {
  uri: `https://www.ah.nl/producten/product/wi112339/ah-tijger-bruin-heel`,
  transform: function(body) {
    return cheerio.load(body);
  }
};

rp(bread).then(($) => {
  console.log($('.product__summary').text());
}).catch((err) => {
  console.log(err);
});

我想获取产品描述: 此页面的屏幕截图,但我不断收到一个空字符串。我在这里做错了什么?

谢谢!

标签: jquerynode.jsweb-scrapingcheerio

解决方案


为了得到答案,让我们尝试以两种不同的方式检查页面(在 Chrome 上):

1.右键->查看页面源码 2.点击F12

你会注意到只有当我们点击F12时才存在“product__summary”类,这是因为只有在浏览器执行了页面的脚本之后,才会出现这个类的元素。

Cheerio 不会在页面上执行脚本,因此您看不到这个特定的类。

您可以使用Selenium,它在规模上运行时非常重,或者jsdom更轻。

祝你好运 !


推荐阅读