【问题标题】:Is it possible to download files from Filetype fields using Ruby?是否可以使用 Ruby 从 Filetype 字段下载文件?
【发布时间】:2013-01-09 19:20:59
【问题描述】:

我正在寻找一种从不同页面下载文件并将它们存储在本地计算机的特定文件夹下的方法。我正在使用 Ruby 1.9.3

请参阅下面的字段:

编辑

这里是html内容:

<input type="hidden" name="supplier.orgProfiles(1152444).location.locationPurposes().extendedAttributes(Upload_RFI_Form).value.filename" value="Screenshot.docx">

<a style="display:inline; position:relative;" href="

                                      /aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz">
                                Screenshot.docx
                             </a>

我刚刚尝试过的一种可能性: 如果添加说https://xyz.test.com 并构造如下所示的 URL,则使用 html 内容

https://xyz.test.com/aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz

然后将该 URL 放在浏览器上并点击 Enter,让我有机会下载文件,如屏幕截图所述。

现在可以通过脚本使用 Ruby 完成吗?

【问题讨论】:

    标签: ruby selenium ruby-1.9.3


    【解决方案1】:

    由于您没有提供有效的 URL,因此很难为您测试解决方案。

    一般来说,检索 URL 的内容是相同的,无论是页面还是文件。 Ruby 内置的OpenURI 是快速路径:

    require 'open-uri'
    file = open('http://example.com').read
    

    保存该文件很容易:

    IO.binwrite('/path/to/file_to_save', file)
    

    使用binwrite 可以避免在保存二进制数据时发生的任何行尾转换。对于文本数据使用:

    IO.write('/path/to/file_to_save', file)
    

    IO.binwriteIO.write 都记录在 IO module 中。

    【讨论】:

    • 它可以处理我粘贴的对话框吗?
    • https://xyz.test.com/aems/file/filegetrevision.do?fileEntityId=8120070&amp;cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz是可下载的文件链接。当您将其粘贴到浏览器并点击enter 命令对话框以获取弹出窗口时。您的代码是以这种方式还是其他方式保存文件?
    • 不能直接与浏览器的对话框交互,也不需要正常交互。浏览器的 GUI 对 Ruby 不可用,除非您使用 WATIR 或其衍生产品之一。
    • 好的,我只需要从网页下载文件,链接就是我粘贴的。所以你的代码将能够这样做。对吗?
    • 您的代码,根据我们向您展示的内容,将执行此操作。在 Stack Overflow 上,我们不一定提供完整的答案,只提供您需要入门的部分。而且,到目前为止,我还没有看到你编写的任何代码。
    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2012-08-13
    • 2017-01-31
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多