2011-11-27 13 views
8

में वेबड्राइवर के माध्यम से उपयोगकर्ता-एजेंट पास करें मैं पाइथन में सेलेनियम का उपयोग कर वेबसाइट स्क्रैपिंग प्रोजेक्ट पर काम कर रहा हूं। जब मैं ब्राउज़र के माध्यम से मुखपृष्ठ खोलता हूं, तो यह ठीक से खुलता है।सेलेनियम

लेकिन, जब मैं सेलेनियम में webdriver() के माध्यम से वेबपृष्ठ खोलने का प्रयास करता हूं, तो यह एक पूरी तरह से अलग पृष्ठ खोलता है।

मुझे लगता है कि यह user-agent (यह सुनिश्चित नहीं है कि इसे क्या कहा जाता है) का पता लगाने में सक्षम है और ब्राउज़र या कुछ के गुणों की जांच करने में सक्षम है।

webdriver() हालांकि गुणों को पार करना संभव है ताकि सही मुखपृष्ठ लोड हो।

धन्यवाद

+0

इसका मतलब क्या है "यह एक पूरी तरह से अलग पृष्ठ खोलता है।" साइट पर एक अलग यूआरएल या तत्व अलग दिखता है? – maguschen

उत्तर

26

वेबड्राइवर के पायथन संस्करण में उपयोगकर्ता एजेंट को बदलना आपके ब्राउज़र की प्रोफ़ाइल को बदलकर किया जाता है। मैंने प्रोफाइल पैरामीटर पास करके केवल webdriver.Firefox() के लिए यह किया है।

from selenium import webdriver 
profile = webdriver.FirefoxProfile() 
profile.set_preference("general.useragent.override","your_user_agent_string") 
driver=webdriver.Firefox(profile) 

हर बार जब आप (यानी फोन driver=webdriver.Firefox(profile) फिर से)

तुम क्या आपके प्रयोक्ता एजेंट की जाए उपयोगकर्ता एजेंट आप अपने वेब ब्राउज़र को पुनः आरंभ करने की आवश्यकता होगी परिवर्तन करना चाहते हैं: आप निम्न कार्य करने होंगे स्ट्रिंग एक ब्राउज़र पर "मेरा उपयोगकर्ता एजेंट क्या है" की खोज करता है जो पृष्ठ को ठीक से प्रदर्शित करता है और बस उसे कॉपी और पेस्ट करता है।

आशा है कि यह कहता है।

0

उपयोगकर्ता-एजेंट मानते हुए, समस्या यह है जावा में आप इसे इस प्रकार संशोधित कर सकते हैं:

FirefoxProfile profile = new FirefoxProfile(); 
profile.addAdditionalPreference("general.useragent.override", "some UA string"); 
WebDriver driver = new FirefoxDriver(profile); 

प्रलेखन here देखें।