2016-06-18 2 views
0

Ich versuche, eine Datei über eine FTP-Verbindung mit der Methode Mechanize download herunterzuladen.So laden Sie Dateien über FTP mit Mechanize

Ich nenne dies mit:

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) 

bekomme ich folgende Fehlermeldung:

/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>' 

Ich denke, es schlägt fehl, weil es nicht die ftp2 in ftp://ftp2.census.gov erkennt, die ich denke, der Fehler verursacht.

+0

Bitte lesen Sie "[mcve]". Wenn Sie nach Code fragen, den Sie geschrieben haben, hilft es wirklich, wenn es lauffähig ist. Der Fehler stimmt nicht mit dem Code überein, da er besagt, dass Sie versuchen, "httpclient" zu laden, aber Sie zeigen weder eine Anforderung in Ihrem Code noch zeigen Sie das Mechanize-Erfordernis an. Es ist nicht notwendig, Mechanize zu verwenden, um FTP-Dateien herunterzuladen, OpenURI kann das auch gut machen. Siehe http://stackoverflow.com/a/5025280/128421 –

Antwort

0

Ich sehe diese Zeile in dem Fehler:

cannot load such file -- httpclient 

und ich glaube, httpclient ein Juwel ist, so dass Sie laufen soll:

gem install httpclient 

oder legen Sie sie in Ihrem Gemfile, dann legen

require 'httpclient' 

an der Spitze Ihres Skripts.

+0

Vielen Dank! Das war genau das Problem. Es stellte sich heraus, dass ich sowohl das httpclient-Juwel als auch das progressbar-Juwel vermisste. Ich habe das Skript aber nochmal ausgeführt, jetzt hängt es einfach, ohne einen Fehler zu werfen. Warum das? – Dan

Verwandte Themen