我知道您可以通過設置agent.user_agent_alias ='Linux Mozilla'來使用一組預定義的別名,但如果我想設置自己的屬性用戶代理,因爲我正在編寫一個網絡爬蟲並希望識別它,對於我正在索引的網站。就像Googlebot一樣。如何爲Rails中的Mechanize設置自定義用戶代理
似乎有一個user_agent方法,但我似乎無法找到有關它的函數的任何文檔。
我知道您可以通過設置agent.user_agent_alias ='Linux Mozilla'來使用一組預定義的別名,但如果我想設置自己的屬性用戶代理,因爲我正在編寫一個網絡爬蟲並希望識別它,對於我正在索引的網站。就像Googlebot一樣。如何爲Rails中的Mechanize設置自定義用戶代理
似乎有一個user_agent方法,但我似乎無法找到有關它的函數的任何文檔。
可以從一個別名
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'
我一直在尋找一種方法來設置機械化隨機用戶代理,所以我落得這樣做的:
a = Mechanize.new do |agent|
agent.user_agent_alias = (Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample
end
我得到這個`NoMethodError異常:未定義方法user_agent_alias for#<機械化:0x007fd9f6c695f8>`錯誤代替... – jmoon90 2015-01-21 15:56:54
只是爲了得到一個新的代理,未機械化
Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample]
至於說通過@Arkhitech,現在你會想這樣做:
agt = Mechanize.new
agt.agent.user_agent = Mechanize::AGENT_ALIASES[(Mechanize::AGENT_ALIASES.keys - ['Mechanize']).sample]
user_agent_alias
已不存在。
謝謝。我認爲這可能是它,但無法找到確認。 – 2011-02-15 14:44:40