问题
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.
回答1:
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'
回答2:
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
回答3:
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.
回答4:
Just to get a new Agent, that is not mechanize
Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample]
来源:https://stackoverflow.com/questions/5003039/how-to-set-custom-user-agent-for-mechanize-in-rails