我目前正在寻找一种访问URL的方法,将数据保存为.html文件,并根据URL命名文件。目前,我有一个.text文件,每行都是一个单独的URL:
http://www.url.com
http://www.url1.com
...
我目前的代码只是将每个.html文件保存为数字,但如果可能的话,我想使用URL本身的名称。
require 'open-uri'
n = 0
open ("urllist.txt"){|o|
while url = o.gets
url.chomp!
printf("URL: %s", url)
open(url) {|site|
fname = sprintf("html/%d.html", n)
open(fname, "w"){|out|
d=site.read
out.write(d)
}
}
n += 1
end
}
也许使用IO.readlines的选项?我不确定。 谢谢。
答案 0 :(得分:0)
您可以使用URI.parse(url).path
获取给定完整网址的文件路径,然后使用File.basename(path)
获取文件本身的名称。
require 'open-uri'
require 'uri'
n = 0
open ("urllist.txt"){|o|
while url = o.gets
url.chomp!
printf("URL: %s", url)
open(url) {|site|
path = URI.parse(url).path
fname = "html/#{File.basename(path)}"
open(fname, "w"){|out|
d=site.read
out.write(d)
}
}
n += 1
end
}