我正在做一个抓取工具来下载http://exile.ru/archive/list.php?IBLOCK_ID=35&PARAMS=ISSUE上的 The Exile 的所有问题。
到目前为止,我的代码是这样的:
require 'rubygems'
require 'open-uri'
DATA_DIR = "exile"
Dir.mkdir(DATA_DIR) unless File.exists?(DATA_DIR)
BASE_exile_URL = "http://exile.ru/docs/pdf/issues/exile"
for number in 120..290
numero = BASE_exile_URL + number.to_s + ".pdf"
puts "Downloading issue #{number}"
open(numero) { |f|
File.open("#{DATA_DIR}/#{number}.pdf",'w') do |file|
file.puts f.read
end
}
end
puts "done"
问题是,很多问题链接都已关闭,代码为每个问题创建一个 PDF,如果它是空的,它将留下一个空的 PDF。如何更改代码以便它只能在链接存在的情况下创建和复制文件?