Ruby / Nokogiri / Mechanize:如何下载XLS文件?

时间:2014-09-24 15:04:39

标签: ruby

我必须向发送文件的页面www.example.com/xls_file发出请求。我有Nokogiri和Mechanize可用。我如何下载文件并在本地保存?

def file
  grab_file if !File.exists?("sales_data.csv")
  File.open("sales_data.csv")
end

def grab_file
  # What do I do here?
  # Nokogiri::HTML(open("http://www.example.com/xls_file"))
end

1 个答案:

答案 0 :(得分:2)

require 'open-uri'

File.open('any_name_here.xls', 'wb') do |file|
 file << open('http://www.example.com/xls_file.xls').read
end

如果要从中获取文件的站点以https://开头,那么您可能需要添加以下内容以避免Ruby报告SSL错误:

require 'open-uri'
require 'openssl'

File.open('any_name_here.xls', 'wb') do |file|
  file << open('https://www.example.com/xls_file.xls', ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE).read
end