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

问题描述:

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

似乎有一个user_agent方法,但我似乎无法找到有关它的函数的任何文档。

可以从一个别名

a = Mechanize.new 
a.user_agent_alias = 'Mac Safari' 

可用别名被存储在AGENT_ALIASES常数设定的用户代理。

p Mechanize::AGENT_ALIASES 

否则,使用#user_agent设置您的自定义用户代理。

a = Mechanize.new 
a.user_agent = 'Custom agent' 
+0

谢谢。我认为这可能是它,但无法找到确认。 – 2011-02-15 14:44:40

我一直在寻找一种方法来设置机械化随机用户代理,所以我落得这样做的:

a = Mechanize.new do |agent| 
    agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample 
end 
+0

我得到这个`NoMethodError异常:未定义方法user_agent_alias for#`错误代替... – jmoon90 2015-01-21 15:56:54

只是为了得到一个新的代理,未机械化

Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample] 

至于说通过@Arkhitech,现在你会想这样做:

agt = Mechanize.new 
    agt.agent.user_agent = Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample] 

user_agent_alias已不存在。