我希望将此内容从此*页面中删除。我查找的所有内容都提供了解析CSS元素的解决方案;但是,该页面没有。
以下是我发现的唯一可能有效的代码:
file = File.open('http://hiscore.runescape.com/index_lite.ws?player=zezima', "r")
contents = file.read
puts contents
错误:
tracker.rb:1:in 'initialize': Invalid argument - http://hiscore.runescape.com/index_lite.ws?player=zezima (Errno::EINVAL)
from tracker.rb:1:in 'open'
from tracker.rb:1
* http://hiscore.runescape.com/index_lite.ws?player=zezima
如果您尝试将其格式化为帖子中的链接,则由于某种原因它无法识别URL中的下划线(_)。
答案 0 :(得分:38)
你真的想使用Kernel类提供的open(),可以从你需要首先需要OpenURI库的URI中读取:
require 'open-uri'
像这样使用:
require 'open-uri'
file = open('http://hiscore.runescape.com/index_lite.ws?player=zezima')
contents = file.read
puts contents
这个相关的SO主题涵盖了同样的问题:
答案 1 :(得分:6)
获取网站内容的适当方法是通过Ruby中的NET :: HTTP模块:
require 'uri'
require 'net/http'
url = "http://hiscore.runescape.com/index_lite.ws?player=zezima"
r = Net::HTTP.get_response(URI.parse(url).host, URI.parse(url).path)
File.open()不支持URI。
祝你好运,答案 2 :(得分:6)
请使用open-uri,它支持uri和本地文件
require 'open-uri'
contents = open('http://www.google.com') {|f| f.read }