我正在开发一个应用程序,它接收网页的地址并生成一个包含该页面源的HTML文件。我已成功生成该文件。我无法弄清楚如何在新标签中启动该文件。这里
这是在Repl.it中运行的,这是一个基于Web的代码编辑器。这就是我所拥有的:
def run
require 'open-uri'
puts "enter a URL and view the source"
puts "don't include the https:// at the beginning"
url = gets.chomp
fh = open("https://"+url)
html = fh.read
puts html
out_file = File.new("out.html", "w")
out_file.puts(html)
out_file.close
run
end
然后我正在运行该代码。
如果您只需要在计算机中本地打开此文件,我将执行system
调用。
例如,在我的macOS上,以下内容将在我的默认浏览器上打开HTML页面:
system("open #{out_file.path}")
如果您想将呈现的HTML提供给网络中的其他用户,那么您将需要一个HTTP服务器,我建议开始使用Sinatra。
据我了解,您只想保存网站的html并在浏览器中打开新文件。
你可以这样做(我使用Firefox)。
require 'net/http'
require 'uri'
uri = URI.parse('https://bla-bla-bla.netlify.com/')
response = Net::HTTP.get_response(uri)
file_name = 'out.html'
File.write(file_name, response.body)
system("firefox #{file_name}")
注意:请记住,网站所有者经常阻止解析器,因此您可能必须使用torify
。
现在检查文件
$ cat out.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bla-bla-bla</title>
</head>
<body>
<p>Bla-bla</p>
</body>
</html>
一切顺利。
希望它能帮到你。