如何在Rails中为Mechanize设置自定义用户代理

Bas*_*lah 27 ruby ruby-on-rails mechanize ruby-on-rails-3

我知道您可以通过设置agent.user_agent_alias ='Linux Mozilla'来使用一组预定义的别名,但是如果我想设置我自己的用户代理,因为我正在编写一个Web爬虫,并希望识别它,对于我正在索引的网站.就像Googlebot一样.

似乎有一个user_agent方法,但我似乎找不到任何关于它的功能的文档.

Sim*_*tti 59

您可以从别名设置用户代理

a = Mechanize.new
a.user_agent_alias = 'Mac Safari'
Run Code Online (Sandbox Code Playgroud)

可用的别名存储在AGENT_ALIASES常量中.

p Mechanize::AGENT_ALIASES
Run Code Online (Sandbox Code Playgroud)

否则,使用#user_agent设置自定义用户代理.

a = Mechanize.new
a.user_agent = 'Custom agent'
Run Code Online (Sandbox Code Playgroud)


ita*_*yad 6

我一直在寻找为Mechanize设置随机用户代理的方法,所以我最终这样做了:

a = Mechanize.new do |agent|
  agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample
end
Run Code Online (Sandbox Code Playgroud)