1

我在使用 Mechanize gem 时遇到问题,如何将Mechanize::File转换为Mechanize::Page

这是我的一段代码:

**link** = page.link_with(:href => %r{/en/users}).click

当用户点击链接时,它会转到包含用户列表的页面,现在我想点击第一个用户,但我无法做到这一点,因为链接返回Mechanize::File对象

任何帮助,建议都会很棒,谢谢

4

2 回答 2

0

Mechanize 使用 Content-Type 来确定应该如何处理资源。有时网站不会为其资源设置 MIME 类型。Mechanize::File是未设置的 Content-Type 的默认值。

如果您只是与您打交道,'text/html'您可以按照 Jimm Stout 的建议使用post_connect_hooks

agent = Mechanize.new do |a|
  a.post_connect_hooks << ->(_,_,response,_) do
    if response.content_type.empty?
      response.content_type = 'text/html'
    end
  end
end
于 2013-12-06T15:38:31.520 回答
0

只需用 nokogiri 解析身体:

link = page.link_with(:href => %r{/en/users}).click
doc = Nokogiri::HTML link.body
agent.get doc.at('a')[:href]
于 2012-06-08T06:02:50.727 回答