私はプログラミングを学んでいる最中なので、いくつかのランダムなプロジェクトを思いついています。過去数年間に収集したすべての GIF をダウンロードするスクリプトを作成することにしました。エラー処理がキャッチされない途中で受け取ったエラーを除いて、すべてが機能しているようです(無効なアクセスモード「wb」、「ArgumentError URI:HTTPリソースは読み取り専用です。1日以上いじっています。この作業を行うことができません。ヘルプやヒントをいただければ幸いです。
require 'json', 'open-uri'
def download
file = open("C:/sites/bookmark/gifs.json")
json = file.read
parsed = JSON.parse(json)
gifs = parsed["children"]
file.close()
total = 0
gifsize = 0
gifs.each do |key|
source = "#{key["uri"]}"
source.chomp
gifname = "#{key["title"]}"
gifname.gsub(/[^0-9a-z ]/i, '')
open("#{gifname}.gif", "wb") do |file|
begin
open(source)
rescue Exception => e
case e.message
when /404/ then puts '404!'
when /505/ then puts '505!'
when /408/ then puts '408!'
else puts 'idk #{e.message}'
end
file.close()
File.delete("#{gifname}.gif")
puts "Deleted #{key["title"]}.gig"
next
end
open(source) do |uri|
file.write(uri.read)
total += 1
gifsize += (uri.size / 1024)
print "#{(uri.size)/1024} KiloBytes"
end
print " --- #{total}"
end
puts " next gif---"
end
puts "\n#{gifsize} Total KB Downloaded \n#{total} Total Gifs "
end
download()
ありがとう