如何为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'
答
我一直在寻找一种方法来设置机械化随机用户代理,所以我落得这样做的:
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
已不存在。
谢谢。我认为这可能是它,但无法找到确认。 – 2011-02-15 14:44:40