31 Stimmen

Wie man den benutzerdefinierten User-Agent für Mechanize in Rails festlegt

Ich weiß, dass du einen Satz vordefinierter Aliase hast, die du verwenden kannst, indem du agent.user_agent_alias = 'Linux Mozilla' zum Beispiel einstellst, aber was ist, wenn ich meinen eigenen User Agent setzen möchte, da ich einen Webcrawler schreibe und ihn identifizieren möchte, zum Wohle der Seiten, die ich indexiere. Genauso wie Googlebot.

Es scheint eine user_agent Methode zu geben, aber ich kann keine Dokumentation über ihre Funktion finden.

64voto

Simone Carletti Punkte 168374

Sie können den Benutzer-Agenten von einem Alias aus festlegen

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

Verfügbare Aliase werden in der Konstanten AGENT_ALIASES gespeichert.

p Mechanize::AGENT_ALIASES

Andernfalls verwenden Sie #user_agent, um Ihren benutzerdefinierten Benutzer-Agenten festzulegen.

a = Mechanize.new
a.user_agent = 'Benutzerdefinierter Agent'

0 Stimmen

Vielen Dank. Ich dachte, das könnte es sein, aber ich konnte keine Bestätigung finden.

7voto

itayad Punkte 289

Ich habe nach einer Möglichkeit gesucht, einen zufälligen Benutzer-Agenten für Mechanize festzulegen, also habe ich das gemacht:

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

0 Stimmen

Ich erhalte stattdessen diesen Fehler NoMethodError Exception: undefined method user_agent_alias for #...

0 Stimmen

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

1voto

Andrew Punkte 21

Wie von @Arkhitech geantwortet, möchten Sie jetzt folgendes tun:

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

user_agent_alias ist nicht mehr verfügbar.

0voto

Tim Kretschmer Punkte 2279

Nur um einen neuen Agenten zu erhalten, der nicht mechanisch ist

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X