Sha256: cb71f3990b6da9c5b74b9fe9406263f5385330660b95dbc9a29363741ab1786c
Contents?: true
Size: 1.64 KB
Versions: 3
Compression:
Stored size: 1.64 KB
Contents
#! /usr/bin/env ruby # coding: utf-8 STORAGE_DIR = ENV["HOME"] + "/image/download" LOG_DIR = STORAGE_DIR + "/log" require "pp" require "date" require "rubygems" gem "nokogiri" require "nokogiri" require "open-uri" gem "imagut" require "imagut/urllogger.rb" def anchored_images(url) doc = Nokogiri::HTML(open(url)) #pp doc #pp doc.methods.sort #pp doc.children #pp doc.xpath("//a").each { |i| pp i } #pp doc.xpath("//a")[10] #pp doc.xpath("//a")[10].attributes["href"].value results = doc.xpath("//a").map{|a| next unless a.attributes.has_key?("href") a.attributes["href"].value }.compact.select{|str| str =~ /(jpg|png|gif)$/} results end #常に log に追記する。 # log に url が含まれていても、 # 最後にアクセスしようとした日を更新するため。 # 古いのを削除とかはしない。 # #log を確認する。 # url が含まれていれば false を返す。 # url が含まれていなければ、log に書き込んで取得。 def storage(url) command = "wget --directory-prefix=#{STORAGE_DIR} #{url}" puts command system command end #anchors = anchored_images('/home/ippei/tmp/getimages/1457652.html') #doc = Nokogiri::HTML(open('http://blog.livedoor.jp/wakusoku/archives/1457652.html')) ul = UrlLogger.new(LOG_DIR) ARGV.each do |url| if ul.include?(url) puts "Already downloaded: #{url}" else anchors = anchored_images(url) anchors.each do |img_url| if ul.include?(img_url) puts "Already exist: #{img_url}" else puts "Getting: #{img_url}" storage(img_url) sleep rand(3) end ul.write img_url end end ul.write url end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
imagut-0.0.2 | bin/getimage |
imagut-0.0.1 | bin/getimage |
imagut-0.0.0 | bin/getimage |