1
我目前正在寻找一种方法来访问一个URL,将数据保存为一个.html文件,并根据URL命名该文件。目前,我有每行作为一个单独的URL .text的文件:用URL保存一个HTML文件作为文件名到Ruby
http://www.url.com
http://www.url1.com
...
我当前的代码是简单地保存每个html的网络连接; e为数字,但我想用的名字如果可能,网址本身。
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?我不确定。 谢谢。
感谢您的回复。 URI.parse(url)的URL文本文件是否有特定的标准?目前它似乎检查了第一个URL,但是却出现错误:'/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/open-uri.rb:36 :in'initialize':是一个目录 - /(Errno :: EISDIR)' – tsukugiri
它似乎期待一个以'/ index.html'结尾的URL,而不仅仅是'/'。你应该可以通过追加'index.html'(或其他合适的)到以/结尾的URL末尾来解决这个问题。 –
嗯,我明白了,如果没有什么要追加的话,你可以提供任何建议吗?URL只是测试的例子使用像http://www.sony.com,apple.com等东西。实际上,我只是通过将/index.html添加到其中一个实际上有效的URL(苹果)并保存的文件是一个index.html,所以不知道它将如何处理多个URL,假设它们都有有效的/index.html页面。 – tsukugiri