2011-02-15 10 views
26

Sé que tiene un conjunto de alias predefinidos que puede usar al establecer agent.user_agent_alias = 'Linux Mozilla' por ejemplo, pero ¿qué ocurre si quiero establecer mi propio alias? agente de usuario, ya que estoy escribiendo un rastreador web y quiero identificarlo, para los sitios que estoy indexando. Al igual que Googlebot.Cómo configurar user-agent personalizado para Mechanize en Rails

Parece que hay un método user_agent, pero parece que no puedo encontrar ninguna documentación sobre su función.

Respuesta

55

Puede configurar el agente de usuario de un alias

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

alias disponibles se almacenan en la constante AGENT_ALIASES.

p Mechanize::AGENT_ALIASES 

De lo contrario, utilice #user_agent para establecer su agente de usuario personalizada.

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

Gracias. Pensé que podría ser, pero no pude encontrar la confirmación. –

5

que estaba buscando una manera de establecer un agente de usuario al azar para Mechanize, por lo que terminé haciendo esto:

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

Obtengo esta excepción 'NoMethodError: método indefinido user_agent_alias para el error # ' en su lugar ... – jmoon90

+0

debe ser a = Mechanize.new do | agent | agent.user_agent = Mechanize :: AGENT_ALIASES [(Mechanize :: AGENT_ALIASES.keys - ['Mechanize']) muestra] final – Arkhitech

0

sólo para obtener un nuevo agente, que no es mecanizar

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

Como ya se respondió por @Arkhitech, ahora que se quiere hacer:

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

user_agent_alias ya no está disponible.

Cuestiones relacionadas