【发布时间】:2009-12-13 23:53:37
【问题描述】:
将 Mechanize 与 Ruby 结合使用我使用 agent.get('http://example.com/foo.torrent')、FileUtils 或其他方式获得了某个文件,如何将此文件保存到我的硬盘驱动器(例如,在运行脚本的目录中)?
附: class => WWW::Mechanize::File
【问题讨论】:
将 Mechanize 与 Ruby 结合使用我使用 agent.get('http://example.com/foo.torrent')、FileUtils 或其他方式获得了某个文件,如何将此文件保存到我的硬盘驱动器(例如,在运行脚本的目录中)?
附: class => WWW::Mechanize::File
【问题讨论】:
好吧,WWW::Mechanize::File 有一个 save_as 实例方法,所以我想这样的事情可能会起作用:
agent.get('http://example.com/foo.torrent').save_as 'a_file_name'
【讨论】:
请注意Mechanize::File 类不是最适合大文件的。在这些情况下,应该改用Mechanize::Download 类,因为它将内容以小块的形式下载到磁盘。该文件将被下载到脚本运行的位置(尽管您也可以指定不同的路径)。您需要首先设置默认解析器,创建新解析器或修改现有解析器。然后,将其保存到所需的路径:
agent.pluggable_parser.default = Mechanize::Download
agent.get( "http://example.com/foo.torrent}").save("path/to/a_file_name")
【讨论】: