gpt4 book ai didi

javascript - 使用 Celerity 下载文件

转载 作者:行者123 更新时间:2023-11-28 10:26:50 25 4
gpt4 key购买 nike

我正在 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 文件)。

或者,是否有人知道一种更适合该任务的( headless )浏览器自动化工具(如果存在)?

最佳答案

我要做的第一件事是检查您是否正在导航到框架。框架(甚至 iframe)被视为完全独立的窗口,您必须首先导航到那里。检查 Celerity::Frames 类。

如果做不到这一点,您可能想尝试一个控制浏览器的库,而不是模拟它。模拟浏览器的库(例如 htmlunit 和 mechanize)有其局限性,您可能已经发现了这一点。为此,我建议使用 watir/firewatir。

关于javascript - 使用 Celerity 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com