我要做的是将工作时间表与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
的方法。
答案 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。