我正在使用机械化从页面中提取链接。
为了便于开发,我使用FakeWeb进行超快速响应,以减少等待时间,并减少对每个代码运行的烦扰。
tags_url = "http://website.com/tags/"
FakeWeb.register_uri(:get, tags_url, :body => "tags.txt")
agent = WWW::Mechanize.new
page = agent.get(tags_url)
page.links.each do |link|
puts link.text.strip
end
当我运行上述代码时,它会说:
nokogiri_test.rb:33: undefined method `links' for #<WWW::Mechanize::File:0x9a886e0> (NoMethodError)
检查页面对象的类之后
puts page.class # => File
如果我不伪造标记的URL,它会起作用,因为page类现在是page
puts page.class # => Page
那么,如何使用FakeWeb和机械化来返回页面而不是文件对象呢?