Как настроить пользовательский пользовательский агент для Mechanize в Rails - PullRequest
26 голосов
/ 15 февраля 2011

Я знаю, что у вас есть набор предопределенных псевдонимов, которые вы можете использовать, задав, например, agent.user_agent_alias = 'Linux Mozilla', но что если я хочу установить свой собственный пользовательский агент, когда я пишу веб-сканер и хочу идентифицировать это, для сайтов, которые я индексирую ради. Так же, как робот Google.

Кажется, есть метод user_agent, но я не могу найти документацию по его функции.

Ответы [ 4 ]

58 голосов
/ 15 февраля 2011

Вы можете установить пользовательский агент из псевдонима

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'
5 голосов
/ 21 апреля 2014

Я искал способ установить случайный пользовательский агент для Mechanize, поэтому в итоге я сделал это:

a = Mechanize.new do |agent|
  agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample
end
1 голос
/ 08 сентября 2016

Как ответил @Arkhitech, теперь вы хотели бы сделать:

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

user_agent_alias больше не доступно.

0 голосов
/ 16 апреля 2016

Просто чтобы получить нового агента, который не механизирован

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