2011-02-15 92 views
26

我知道您可以通過設置agent.user_agent_alias ='Linux Mozilla'來使用一組預定義的別名,但如果我想設置自己的屬性用戶代理,因爲我正在編寫一個網絡爬蟲並希望識別它,對於我正在索引的網站。就像Googlebot一樣。如何爲Rails中的Mechanize設置自定義用戶代理

似乎有一個user_agent方法,但我似乎無法找到有關它的函數的任何文檔。

回答

55

可以從一個別名

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

可用別名被存儲在AGENT_ALIASES常數設定的用戶代理。

p Mechanize::AGENT_ALIASES 

否則,使用#user_agent設置您的自定義用戶代理。

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

謝謝。我認爲這可能是它,但無法找到確認。 – 2011-02-15 14:44:40

5

我一直在尋找一種方法來設置機械化隨機用戶代理,所以我落得這樣做的:

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

我得到這個`NoMethodError異常:未定義方法user_agent_alias for#<機械化:0x007fd9f6c695f8>`錯誤代替... – jmoon90 2015-01-21 15:56:54

0

只是爲了得到一個新的代理,未機械化

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

至於說通過@Arkhitech,現在你會想這樣做:

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

user_agent_alias已不存在。

相關問題