我在 JRuby 中使用 Celerity 来自动从某些网站下载一些 .csv 文件。对于其中一个网站(LinkShare),我已经非常接近但无法弄清楚最后一步。
该网站使用 javascript 和“隐藏 iframe”方法推送文件下载 - 在常规浏览期间,当您单击下载按钮时,它会调用 javascript 来创建包含下载内容的隐藏 iframe,浏览器会选择并提示用户保存文件。
显然,在 Celerity 中的工作方式并不完全相同。单击链接后,我可以在 jirb 中看到新的 iframe,但无法在其上调用任何方法,出现如下错误:
NoMethodError: undefined method `getDocumentElement' for #<Java::ComGargoylesoftwareHtmlunit::TextPage:0x184e6efc>
有人对 Celerity/Htmlunit/Javascript/Jruby 有足够的经验,他们可以为我指明正确的方向吗?我只想检索下载内容(.csv 文件)。
或者,是否有人知道更适合该任务的(无头)浏览器自动化工具,如果存在的话?