一点信息:
当“检查”(谷歌浏览器)时,网站会显示我需要的信息(即,指向 .pdf 的简单链接)。
当我卷曲网站时,只有一部分被保存。再加上存在函数和 <script> 标签的事实,让我相信 javascript 是罪魁祸首(老实说,我不是 100% 确定,因为我对此很陌生)。
我需要定期拉这个链接,它每次都会改变。
问题:
有没有办法让我在 bash 中运行这个 javascript 并将它生成的新 HTML 代码保存到文件中?
当“检查”(谷歌浏览器)时,网站会显示我需要的信息(即,指向 .pdf 的简单链接)。
当我卷曲网站时,只有一部分被保存。再加上存在函数和 <script> 标签的事实,让我相信 javascript 是罪魁祸首(老实说,我不是 100% 确定,因为我对此很陌生)。
我需要定期拉这个链接,它每次都会改变。
有没有办法让我在 bash 中运行这个 javascript 并将它生成的新 HTML 代码保存到文件中?
不是微不足道的。
通常,对于这种方法,您需要:
有一些工具可以帮助解决这个问题,例如 Puppeteer、PhantomJS 和 Selenium,但它们通常适合使用比 bash 更强大的编程语言来驱动。
作为替代方案,您可以查看对页面进行逆向工程。它从某个地方获取数据。您可能可以计算出 URL(浏览器开发人员工具的网络选项卡在那里很有帮助)并直接访问它们。
如果你想下载一个使用 JavaScript 生成的网页,你需要执行这个 JavaScript 来加载页面。为此,您可以使用类似puppeteer
NodeJS 的库。还有很多其他的库,但这是最受欢迎的。
如果您想知道为什么会发生这种情况,那是因为 Web 开发人员经常使用像 React、Vue 或 Angular 这样的框架来引用最流行的框架,这些框架只生成一个 JavaScript 输出,而不是由常见的 HTTP 请求库执行。