ruby - 为什么我们需要带有 mechanize 对象的 user_agent_alias ?

标签 ruby mechanize-ruby

我只是想知道一些有关mechanize的信息,并从互联网上找到了以下代码:

require 'mechanize'
require 'logger'
agent = Mechanize.new
agent.user_agent_alias = 'Windows IE 9'
agent.follow_meta_refresh = true
agent.log = Logger.new(STDOUT)

有人可以解释一下,当mechanize本身就是一个浏览器时,为什么需要user_agent_aliasfollow_meta_refresh

最佳答案

Mechanize 不是浏览器。它是一个页面解析器,为您提供足够的方法,使您可以轻松/方便地浏览网站。但是,它绝不是浏览器。

user_agent_alias 设置 Mechanize 在运行和发出页面请求时的签名。在您的示例中,它试图通过伪装成“IE 9”来欺骗站点,但该签名不会欺骗任何正在嗅探 User-Agent header 的系统。

follow_meta_refresh,好吧,您应该花时间搜索带有“refresh”参数的“meta”标签。找出它是微不足道的,然后你就会明白。或者只是 read the documentation为了它。

关于ruby - 为什么我们需要带有 mechanize 对象的 user_agent_alias ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467526/

相关文章:

ruby - bundler 如何隔离 Ruby 中的 gem?

使用 mqueue.h 和 -lrt 配置 ceedling

Ruby Mechanize 的 http 身份验证问题

Ruby #detect 使用随机数的行为

arrays - 按特定顺序组合两个数组

Ruby Mechanize 在响应中忽略 cookie

Ruby::如何使用 Mechanize 搜索隐藏元素

ruby-on-rails - 我无法使用 Mechanize 编辑字段

ruby - 如何检查数组中是否设置了 nil?