>我在使用 Mechanize gem 时遇到了问题,如何将 Mechanize::File 转换为 Mechanize::P age,
这是我的代码段:
**link** = page.link_with(:href => %r{/en/users}).click
当用户链接单击时,它会转到带有用户列表的页面,现在我想单击第一个用户,但我无法实现这一点,因为链接返回机械化::文件对象
任何帮助,建议会很棒,谢谢
Mechanize 使用内容类型来确定应如何处理资源。有时,网站不会为其资源设置 MIME 类型。 Mechanize::File
是未设置的内容类型的默认值。
如果您只处理'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]