首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs中抓取网页的动态数据

在nodejs中抓取网页的动态数据
EN

Stack Overflow用户
提问于 2017-09-04 19:20:37
回答 2查看 1.2K关注 0票数 1

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

代码语言:javascript
复制
// 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标记中的文本是动态的。当我运行代码时,我只得到静态数据,即,描述字段数据是empty.By遵循前面的StackOverflow问题,我试图使用幻影js来解决这个问题,但它对我不起作用。这里的动态数据是通过旋转轮子获得的数据。如果您对我使用的网站有任何疑问,可以查看https://www.activecubs.com/activity-wheel/

EN

回答 2

Stack Overflow用户

发布于 2017-09-04 19:28:31

Stack Overflow用户

发布于 2017-09-04 20:27:33

可以使用SpookyJS执行用户操作

SpookyJS使从Node.js驱动CasperJS套件成为可能。在较高的级别上,Spooky通过将Casper派生为子进程并通过RPC控制它来实现这一点。具体地说,每个Spooky实例都会产生一个运行引导脚本的子Casper进程。bootstrap脚本设置一个JSON-RPC服务器,该服务器通过传输( HTTP或stdio)侦听来自父Spooky实例的命令。该脚本还设置了一个JSON-RPC客户端,该客户端通过stdout将事件发送到父Spooky实例。检查documentation

Example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46035931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档