我在使用 Mechanize gem 时遇到问题,如何将Mechanize::File转换为Mechanize::Page,
这是我的一段代码:
**link** = page.link_with(:href => %r{/en/users}).click
当用户点击链接时,它会转到包含用户列表的页面,现在我想点击第一个用户,但我无法做到这一点,因为链接返回Mechanize::File对象
任何帮助,建议都会很棒,谢谢
我在使用 Mechanize gem 时遇到问题,如何将Mechanize::File转换为Mechanize::Page,
这是我的一段代码:
**link** = page.link_with(:href => %r{/en/users}).click
当用户点击链接时,它会转到包含用户列表的页面,现在我想点击第一个用户,但我无法做到这一点,因为链接返回Mechanize::File对象
任何帮助,建议都会很棒,谢谢
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
只需用 nokogiri 解析身体:
link = page.link_with(:href => %r{/en/users}).click
doc = Nokogiri::HTML link.body
agent.get doc.at('a')[:href]