所以我有一个使用 Mechanize 来获取页面的应用程序。请注意,我试图解析的 HTTP 站点是一个 *.TXT 文件。
在 IRB 中,我运行一个简单的程序,例如:
require 'rubygems'
require 'mechanize'
require 'nokogiri'
@agent = Mechanize.new{|agent| agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2'}
@agent.get(http://some_sort_of_text_file.txt)
for line in @agent.page.content
puts line
end
这运行良好,我将文本文件中的每一行作为输出。
但是当我将它推送到 Heroku 时.. 我收到这样的错误:
NoMethodError (undefined method `each' for #<String:0x00000003ebf200>):
嗯......我发现由于某种奇怪的原因,页面变成了一个巨大的字符串文件,我需要采取另一个步骤来进行一些编程,例如:
@doc = @agent.page.content
@items =[]
start =0
@doc.gsub(/|/, " ")
@doc.gsub(/\\n/,"|")
counter=0
while counter <= @doc.length
if(@doc[counter]== "|")
@items << @doc[start..counter]
start=counter+1
end
counter = counter+1
end
知道为什么它将站点作为 Heroku 上的字符串接收,以及为什么我需要采取额外的步骤来将每一行分解为一个数组吗?
任何帮助表示赞赏。