等待客户端Javascript与Axios GET请求一起加载

时间:2020-05-28 14:16:22

标签: javascript node.js get axios

我要做的是将工作时间表与Google日历同步。不幸的是,现在没有可用的API,因此这不是一种选择。我能够成功登录到我的帐户并重定向到包含内容的页面。唯一的问题是该网站依赖于加载日期等的客户端javascript。

有什么办法让Axios等待几秒钟,以便加载日期,然后返回正文内容?我一直在浏览互联网,但找不到我的问题的任何答案。

这是我现在正在使用的代码。

axios.post('link here', {
    Username: 0,
    Password: 0
}).then((res) => {
    axios.get('link here', {headers: {
        "Cookie":res.headers['set-cookie']}}, {}).then((res) => {
        console.log(res.data)
    });
});

因此,我正在寻找一种使其加载页面然后返回res.data的方法。

1 个答案:

答案 0 :(得分:1)

axios无法做到这一点。 浏览器的作用是获取html(例如您的get调用)并通过执行链接到html的javascript

呈现任何动态内容。

Axios将仅返回原始html,并且由于它不是浏览器,因此您将一无所获。

如果您完全确定没有任何api集成,例如:https://developers.google.com/calendar,则可以改用https://github.com/puppeteer/puppeteer

与axios不同,Puppeteer将呈现页面并为您运行任何链接的JavaScript。您可以通过javascript控制的无头chrome浏览器。那是完成这项工作的正确工具。

或者,您可以获取正在执行的javascript函数的调用(可能是另一个链接的get调用),而不是获取原始HTML。