使用Ruby获取网页内容 – 我遇到了麻烦
我想从这个*页面中删除内容。 我查找的所有内容都提供了解析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
如果您尝试将其格式化为post中的链接,则由于某种原因它无法识别URL中的下划线(_)。
你真的想使用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线程涵盖了同样的问题:
从本地文件或URL打开IO流
获取网站内容的适当方法是通过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。
最好的祝愿,
法比安
请使用open-uri,它支持uri和本地文件
require 'open-uri' contents = open('http://www.google.com') {|f| f.read }
- Nokogiri在heroku上产生不同的结果?
- Netbeans上的Rails:未捕获的exception:没有要加载的文件 – 脚本/服务器或脚本/控制台
- Rails Object#blank? vs. String#empty? 混乱
- 将ruby与html混合时,“<%=”和“<%”之间的区别?
- Rails Geocoder“未定义的方法错误”
- Rails – ruby / 2.1.0 / minitest / parallel_each.rb:67:in”:类’Minitest :: Unit’的未定义方法’_run_suites’(NameError)
- 如何限制视图
- 访问ruby中的对象内存地址..?
- Ruby运算符方法调用与普通方法调用