2013-01-09 88 views
0

我正在寻找一种方法来从不同页面下载文件,并将它们存储在本地计算机中的特定文件夹下。我使用Ruby 1.9.3是否可以使用Ruby从Filetype字段下载文件?

见下面的字段:

Filetypefield

File prompt to download

编辑

下面是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> 

一个方法可行我只是想:与HTML的内容,如果加说https://xyz.test.com和构造URL类似如下

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

,并将该网址到浏览器和命中Enter给我有机会以截图的形式下载文件。

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

+0

任何人都可以帮助我吗? –

回答

1

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

一般来说,检索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

+0

它可以处理对话框,因为我粘贴aobve? –

+0

'https://xyz.test.com/aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz'是可下载的文件链接。当你把它粘贴到浏览器中并点击'enter'命令对话框就会出现弹出窗口。你的代码是以这种方式保存文件吗? –

+0

您不能直接与浏览器的对话框进行连接,也不需要正常进行。除非您使用WATIR或其衍生产品之一,否则浏览器的GUI不可用于Ruby。 –

相关问题