如何解析我抓取的HTML页面中的JavaScript对象?

时间:2016-11-24 10:59:44

标签: javascript node.js parsing web-crawler html-parsing

我正在尝试索引食谱配方页面,实际配方作为对象存储在页面的JavaScript中。

一个示例网址:http://www.dagbladet.no/mat/oppskrift/bakt-potet-med-romme-og-blamuggostdressing

如果我在浏览器中打开开发人员工具并输入:

console.dir(food.recipeItem.title)

我得到了标题:

"Bakt potet med rømme- og blåmuggostdressing"

所有美好和花花公子,正是我需要的。但是,如何才能获得该脚本并在Node.js应用程序中解析它? Cheerio可能会帮助我找到这个剧本,但是除此之外还没有做多少?或许它会?我不知道该怎么做,而不是什么是计算效果最好的答案。或者最稳固。

1 个答案:

答案 0 :(得分:1)

这很简单,您只需要解析返回的HTML。 如果您检查返回的HTML(view-source:http://www.dagbladet.no/mat/oppskrift/bakt-potet-med-romme-og-blamuggostdressing),您会发现一个脚本标记,其中包含您在多个 javascript 变量中所需的所有信息。这些变量包含 JSON 数据。由于脚本直接硬编码到HTML文档中,而不是由XHR或类似文件获得,因此解析HTML是唯一的方法。

所以基本上你有这3个步骤:

1。将HTTP GET请求发送到the link above

2。解析HTML字符串以使用某个库提取脚本标记(选中this链接以决定使用哪个库)。

3. 解析javascript字符串(从步骤2中提取的脚本)以提取JSON数据。检查UglifyJS 库以查找Node.js