我有:
require 'open-uri'
url = "file:///home/nav/Desktop/Scraping/scrap1.html"它给出的错误如下:
No such file or directory @ rb_sysopen - file:\home/nav/Desktop/Scraping/scrap1.html发布于 2014-09-14 03:27:53
如果你想用Nokogiri解析一个本地文件,你可以这样做。
file = File.read('/home/nav/Desktop/Scraping/scrap1.html')
doc = Nokogiri::HTML(file)发布于 2014-09-14 11:14:04
在浏览器中打开本地文件时,地址栏中的URL显示为:
file:///Users/7stud/Desktop/accounts.txt但这并不意味着您可以在Ruby脚本中使用这种格式。Ruby脚本不会将文件名发送到浏览器,然后再请求浏览器检索该文件。Ruby脚本直接搜索文件系统。
URL也是如此: Ruby脚本不会要求浏览器从互联网上检索页面,Ruby通过使用系统的网络接口发送请求来检索页面本身。毕竟,浏览器和Ruby程序都只是计算机程序。你的浏览器可以在网络上做什么,Ruby程序也可以做什么。
这对我来说很有效:
require 'open-uri'
text = open('./data.txt').read
puts text不过,你必须正确地走自己的路。我能想到使用open()的唯一原因是如果你有一个文件名和URL混合在一起的数组。如果这不是您的情况,请参阅new2code的答案。
发布于 2014-09-14 03:41:19
这就是我根据文档所做的事情。
f = File.open("//home/nav/Desktop/Scraping/scrap1.html")
doc = Nokogiri::HTML(f)
f.closehttps://stackoverflow.com/questions/25826795
复制相似问题