2011-02-15 7 views
26

मुझे पता है कि आपके पास पूर्व-परिभाषित उपनाम का एक सेट है जिसका उपयोग आप agent.user_agent_alias = 'Linux मोज़िला' को उदाहरण के लिए सेट करके कर सकते हैं, लेकिन यदि मैं अपना खुद का सेट करना चाहता हूं तो क्या होगा उपयोगकर्ता एजेंट, क्योंकि मैं एक वेब क्रॉलर लिख रहा हूं और इसे पहचानना चाहता हूं, जिन साइटों के लिए मैं अनुक्रमण कर रहा हूं। बस Googlebot की तरह।रेल में मैकेनाइजेशन के लिए कस्टम उपयोगकर्ता-एजेंट कैसे सेट करें

ऐसा लगता है कि उपयोगकर्ता_एजेंट विधि है, लेकिन मुझे इसके फ़ंक्शन के बारे में कोई प्रलेखन नहीं मिल रहा है।

उत्तर

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

धन्यवाद। मैंने सोचा कि यह हो सकता है, लेकिन पुष्टि नहीं मिल सका। –

5

मैं मशीनीकरण के लिए एक यादृच्छिक उपयोगकर्ता एजेंट स्थापित करने के लिए एक रास्ता तलाश रहा था, इसलिए मैं यह कर समाप्त हो गया:

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

मुझे यह 'NoMethodError अपवाद प्राप्त होता है: # <मशीनीकरण: 0x007fd9f6c695f8> के बजाय अपरिभाषित विधि user_agent_alias ... – jmoon90

+0

a = Mechanize.new do | agent | agent.user_agent = मशीनीकरण :: AGENT_ALIASES [(मैकेनाइज :: AGENT_ALIASES.keys - ['मशीनीकरण']) नमूना] अंत – Arkhitech

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 अब और उपलब्ध नहीं है।

संबंधित मुद्दे