2011-02-15 19 views
26

Örneğin, agent.user_agent_alias = 'Linux Mozilla'yı ayarlayarak kullanabileceğiniz önceden tanımlı bir takma adınız olduğunu biliyorum, ancak kendi başıma ayarlamak istersem ne olur? kullanıcı aracısı, bir web tarayıcımı yazarken ve onu tanımlamak istediğimde, indekslemenin uğruna olduğum siteler için. Tıpkı Googlebot gibi.Raylarda Mekanize etmek için özel kullanıcı aracısı nasıl ayarlanır

Bir user_agent yöntemi var gibi görünüyor, ancak onun işlevi hakkında herhangi bir belge bulamıyorum.

cevap

55

Sen

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

Mevcut adlar AGENT_ALIASES sabit saklanır bir takma ad kullanıcı aracısı oluşturabilirsiniz.

p Mechanize::AGENT_ALIASES 

Aksi takdirde, özel kullanıcı ajan ayarlamak için #user_agent kullanın.

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

Teşekkürler. Bunun olabileceğini düşündüm, ama onay bulamadı. –

5

Ben motorize için rasgele bir kullanıcı aracısı için bir yol arıyordu, ben bunu sona erdi:

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

Bu NoMethodError Özel Durumunu aldım: # hatası yerine undefined method user_agent_alias – jmoon90

+0

olmalıdır a = Mechanize.new do | agent | agent.user_agent = Mekanize Etme :: AGENT_ALIASES [(Mechanize :: AGENT_ALIASES.keys - ['Mechanize']). Örnek] end – Arkhitech

0

Sadece yeni Ajan almak için, o motorize değildir

@Arkhitech tarafından cevap olarak
Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample] 
0

, şimdi yapmak isteyeyim:

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

user_agent_alias artık mevcut değildir.

İlgili konular