如何在Rails中为Mechanize设置自定义用户代理
我知道您可以通过设置agent.user_agent_alias =’Linux Mozilla’来使用一组预定义的别名,但是如果我想设置自己的用户代理,因为我正在编写一个Web爬虫,并且想要识别它,对于我正在索引的网站。 就像Googlebot一样。
似乎有一个user_agent方法,但我似乎找不到任何关于它的function的文档。
您可以从别名设置用户代理
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'
我一直在寻找为Mechanize设置随机用户代理的方法,所以我最终做到了这一点:
a = Mechanize.new do |agent| agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample end
只是为了得到一个新的代理,这不是机械化
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
不再可用。