node.js - 从由 JavaScript 处理的链接加载数据(使用脚本)
问题描述
我想使用脚本从此页面下载数据
页面上有一个用于将数据导出到 CSV 文件的按钮 -将数据筛选器导出到 CSV 文件,但它没有我可以用于下载的链接,因为单击此按钮是由 JavaScript 函数在点击。
在输出中,我得到以下文件的链接blob: https: //www.tradingview.com/1e82c571-fbf7-4cd0-9a4c-8c836263e17
告诉我如何实现从脚本下载文件,例如,编写在NodeJS上。至少在您可以看到的地方不要等待完成的代码....
谢谢大家!
解决方案
您可以采取多种方法。
寻找另一种获取数据的方法。他们可能有一个您可以调用的直接下载 URL 或 API。屏幕抓取是一种访问数据的黑客方式,它可能违反了他们网站的许可协议。
因为下载按钮是基于 JavaScript 的,所以您可以使用真正的浏览器打开页面并单击按钮。
phantom
节点包装器是您可以将节点脚本与 PhantomJS 接口并自动执行此操作的一种方式。可能最简单的做法是使用开发人员工具对单击按钮的作用进行逆向工程,然后在节点代码中执行相同的步骤。例如,您可以查看网络选项卡以查看发出了哪些请求,然后复制这些相同的请求。
推荐阅读
- python - 如何从python中的字符串中删除这些特殊的ascii字符?
- angular - 角度文本框的动态串联名称
- shared-hosting - 我所有的帖子请求都给我“由于不活动,该页面已过期。请刷新并重试。” 我的共享主机 laravel 5.6 中的错误
- c# - 如何使用代码统一更改轻组件中的烘焙(烘焙类型)?
- xpath - XPath:在匹配条件的第一个元素上停止收集元素
- swift - iTunes Store 操作失败。没有找到合适的申请记录
- image - 错误:在 Octave 4.2.2 中未定义 rgb2gray
- azure - 如何使用具有凭据的 USQL 数据库项目?
- c# - sql中锁资源死锁
- visual-studio - TFS 不会删除本地副本