【问题标题】:Waiting for client side Javascript to load with Axios GET request等待客户端 Javascript 加载 Axios GET 请求
【发布时间】:2020-05-28 14:16:22
【问题描述】:

我正在尝试将我的工作日程与我的 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

【问题讨论】:

    标签: javascript node.js get axios


    【解决方案1】:

    这对于 axios 是不可能的。 浏览器所做的是获取 html(如您的 get 调用)并通过执行链接到 html 的 javascript 来呈现任何动态内容

    Axios 将简单地返回原始 html,因为它不是浏览器,所以您不会得到任何其他内容。

    如果您绝对确定没有任何 api 集成 ala:https://developers.google.com/calendar,您可以改用 https://github.com/puppeteer/puppeteer

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-08
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多