有没有办法从Ruby呈现HTML页面?

问题描述 投票:0回答:2

我正在开发一个应用程序,它接收网页的地址并生成一个包含该页面源的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

然后我正在运行该代码。

html ruby file browser
2个回答
0
投票

如果您只需要在计算机中本地打开此文件,我将执行system调用。

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

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

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


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>

一切顺利。

希望它能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.