Sha256: f6cc25da0c726bc76b906d8b6d2782e50af78199f3bf2874512a152965c47885

Contents?: true

Size: 695 Bytes

Versions: 5

Compression:

Stored size: 695 Bytes

Contents

require 'nokogiri'
require 'open-uri'

abort("Usage: extract_links URL DEST_DIR") if ARGV.size != 2

args = ARGV.dup
url = args[0]
dest_dir = args[1]

doc = Nokogiri::HTML(open(url))

hrefs = doc.css("a").map do |link|
  if (href = link.attr("href")) && !href.empty?
    URI::join(url, href)
  end
end.compact.uniq

Dir.mkdir(dest_dir) unless File.exist?(dest_dir)
Dir.chdir(dest_dir)

hrefs.each_with_index do |href, i|
  filename = href.path.split('/').last
  print "Downloading (#{i + 1}/#{hrefs.size}) #{filename}...\r"

  begin
    File.write(filename, open(href).read)
  rescue OpenURI::HTTPError => ex
    puts "Sonofa!"
    raise
  end
end

puts "\nAll done!"

#  puts(hrefs.join("\n"))

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ffi-gdal-1.0.0.beta1 linkies.rb
ffi-gdal-0.0.4 linkies.rb
ffi-gdal-0.0.3 linkies.rb
ffi-gdal-0.0.2 linkies.rb
ffi-gdal-0.0.1 linkies.rb