我正在尝试做的是同步我的工作日程和我的谷歌日历。现在没有可用的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。
发布于 2020-05-28 22:32:04
这在axios中是不可能的。浏览器所做的就是获取html (就像您的get调用一样),并通过执行链接到html的javascript来呈现任何动态内容
Axios将简单地返回原始的html,因为它不是浏览器,所以您不会得到其他任何东西。
如果您完全确定没有任何api集成ala:https://developers.google.com/calendar,您可以改用https://github.com/puppeteer/puppeteer。
与axios不同,Puppeteer将呈现页面并为您运行任何链接的javascript。它是一个无头的chrome浏览器,你可以通过javascript来控制它。这就是适合这项工作的工具。
或者,您可以找出javascript函数正在执行的调用(可能是对另一个链接的get调用),而不是获取原始HTML
https://stackoverflow.com/questions/62066962
复制相似问题