Bashar Abdullah
Bashar Abdullah

Reputation: 1545

How to set custom user-agent for Mechanize in Rails

I know you have a set of pre-defined aliases you can use by setting agent.user_agent_alias = 'Linux Mozilla' for instance, but what if I want to set my own user agent, as I'm writing a web crawler and want to identify it, for the sites I'm indexing's sake. Just like Googlebot.

There seems to be a user_agent method, but I can't seem to find any documentation about it's function.

Upvotes: 31

Views: 18701

Answers (4)

Andrew
Andrew

Reputation: 21

As replied by @Arkhitech, now you would want to do:

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

user_agent_alias is not available any more.

Upvotes: 1

Tim Kretschmer
Tim Kretschmer

Reputation: 2280

Just to get a new Agent, that is not mechanize

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

Upvotes: 0

itayad
itayad

Reputation: 289

I was looking for a way to set a random user agent for Mechanize, so I ended up doing this:

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

Upvotes: 7

Simone Carletti
Simone Carletti

Reputation: 176412

You can set the user agent from an alias

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

Available aliases are stored in the AGENT_ALIASES constant.

p Mechanize::AGENT_ALIASES

Otherwise, use #user_agent to set your custom user agent.

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

Upvotes: 64

Related Questions