有没有一种方法可以从Ruby渲染HTML页面?

时间:2019-02-15 13:48:26

标签: html ruby file browser

我正在开发一个应用程序,该应用程序接收一个网页的地址,并使用该页面的源代码生成一个HTML文件。我已经成功生成了文件。我不知道如何在新标签页中启动该文件。在这里

这在基于Web的代码编辑器Repl.it中运行。这是我所拥有的:

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

然后我正在运行该代码。

2 个答案:

答案 0 :(得分:0)

如果您只需要在计算机上本地打开此文件,我将进行一次system通话。

例如,在我的macOS上,以下操作将在默认浏览器上打开HTML页面:

system("open #{out_file.path}")

如果您想将渲染的HTML提供给网络中的其他用户,那么您将需要一个HTTP服务器,我建议Sinatra开始。

答案 1 :(得分:0)

据我了解,您只想保存网站的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>

一切顺利。

希望它对您有帮助。