【问题标题】:How to download files over FTP using Mechanize如何使用 Mechanize 通过 FTP 下载文件
【发布时间】:2016-06-18 18:05:53
【问题描述】:

我正在尝试使用 Mechanize download 方法通过 FTP 连接下载文件。

我称之为:

agent = Mechanize.new

file = '/census_tracts_2014/file1.zip'
url = 'ftp://ftp2.census.gov/geo/tiger/TIGER2014/TRACT/tl_2014_01_tract.zip'

agent.download(url,file)

我收到以下错误:

/Users/danish/.rbenv/versions/2.2.4/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- httpclient (LoadError)
    from /Users/danish/.rbenv/versions/2.2.4/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from test.rb:24:in `<main>'

我认为它失败了,因为它无法识别ftp://ftp2.census.gov 中的ftp2,我认为这是导致错误的原因。

【问题讨论】:

  • 请阅读“minimal reproducible example”。当询问您编写的代码时,如果它是可运行的,它真的很有帮助。该错误与代码不匹配,因为它表示您正在尝试加载“httpclient”,但您没有在代码中显示对它的要求,也没有显示 Mechanize 要求。下载 FTP 文件不需要使用 Mechanize,OpenURI 也可以。见stackoverflow.com/a/5025280/128421

标签: ruby download ftp mechanize


【解决方案1】:

我在错误中看到这一行:

cannot load such file -- httpclient

而且我相信httpclient 是一颗宝石,所以你应该运行:

gem install httpclient

或将其放入您的 Gemfile 中,然后放置

require 'httpclient' 

在脚本的顶部。

【讨论】:

  • 谢谢!这正是问题所在。事实证明我错过了 httpclient gem 和 progressbar gem。然而,我再次运行脚本,现在它只是挂起,没有抛出错误。这是为什么呢?
猜你喜欢
  • 2012-07-19
  • 2012-10-04
  • 1970-01-01
  • 2011-08-04
  • 2012-01-09
  • 2012-08-18
  • 2020-05-25
  • 1970-01-01
相关资源
最近更新 更多