I'm using Mechanize to facilitate the downloading of some files. At the moment my script uses the following line to actually download the files...
agent.get('http://example.com/foo').save_as 'a_file_name'
However this downloads the complete file into memory before dumping it to disk. How do you bypass this behavior, and simply download straight to disk? If I need to use something other than WWW:Mechanize then how would I go about using WWW:Mechanize's cookies with it?
What you really want is the Mechanize::Download
http://mechanize.rubyforge.org/Mechanize/Download.html
you can use this way:
require 'mechanize'
agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::Download
agent.get('http://example.com/foo').save('a_file_name')
Have you looked at Mechanize::FileSaver? It looks like it can do what you require.
Here is an example that saves all the PDF files it encounters:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
agent.pluggable_parser.pdf = Mechanize::FileSaver
agent.get('http://example.com/foo.pdf')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With