我正在尝试索引食谱配方页面,实际配方作为对象存储在页面的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可能会帮助我找到这个剧本,但是除此之外还没有做多少?或许它会?我不知道该怎么做,而不是什么是计算效果最好的答案。或者最稳固。
答案 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