在nodejs中对网页的dynamic数据进行报废

通过使用node.js我试图刮一个网页。 为此,我使用cheerio和tinyreq模块。 我的源代码如下:

// scrape function function scrape(url, data, cb) { req(url, (err, body) => { if (err) { return cb(err); } let $ = cheerio.load(body) , pageData = {}; Object.keys(data).forEach(k => { pageData[k] = $(data[k]).text(); }); cb(null, pageData); }); } scrape("https://www.activecubs.com/activity-wheel/", { title: ".row h1" , description: ".row h2" }, (err, data) => { console.log(err || data); }); 

在我的代码中,h1标签中的文本是静态的,在h2标签中是dynamic的。 当我运行代码时,我只获取静态数据,即描述字段数据为空。通过以下StackOverflow问题,我尝试使用幻像js来解决这个问题,但它不适用于我。 这里的dynamic数据是通过旋转车轮获得的数据。 对于我正在使用的网站上的任何疑问,您可以查看https://www.activecubs.com/activity-wheel/ 。

用户操作可以使用SpookyJS来执行

SpookyJS可以从Node.js驱动CasperJS套件。 在高层次上,Spooky通过产生Casper作为subprocess并通过RPC进行控制来完成此任务。 具体来说,每个Spooky实例都会生成一个运行引导脚本的子Casper进程。 引导脚本build立一个JSON-RPC服务器,通过传输(HTTP或者stdio)监听父Spooky实例的命令。 该脚本还设置了一个JSON-RPC客户端,通过stdout将事件发送到父Spooky实例。 检查文档