2013-02-25 15 views
41

का उपयोग करके कुकीज को कैसे सहेजना और लोड करना है I Python के सेलेनियम वेबड्राइवर में सभी कुकीज़ को txt-file में कैसे सहेज सकते हैं, फिर उन्हें बाद में लोड कर सकते हैं? प्रलेखन getCookies फ़ंक्शन के बारे में कुछ भी नहीं कहता है।पाइथन + सेलेनियम वेबड्राइवर

उत्तर

85

आप वर्तमान कुकीज़ को अचार का उपयोग करके पाइथन ऑब्जेक्ट के रूप में सहेज सकते हैं। उदाहरण के लिए:

import pickle 
import selenium.webdriver 

driver = selenium.webdriver.Firefox() 
driver.get("http://www.google.com") 
pickle.dump(driver.get_cookies() , open("cookies.pkl","wb")) 

और बाद में उसे शामिल करने:

import pickle 
import selenium.webdriver 

driver = selenium.webdriver.Firefox() 
driver.get("http://www.google.com") 
cookies = pickle.load(open("cookies.pkl", "rb")) 
for cookie in cookies: 
    driver.add_cookie(cookie) 
+0

मुझे "अचार प्रोटोकॉल होना चाहिए <= 2" त्रुटि। आपके द्वारा पोस्ट किए गए अचार कोड का उपयोग करना। इसका क्या मतलब है? क्या यह तर्कों का जिक्र है? –

+0

क्या यह वही काम करेगा? cookieFile = open ("कुकीज़.pkl", "w") डंप = pickle.dumps (driver.get_cookies()) cookieFile.write (डंप) –

+0

हाय हारून, मैंने नमूना को थोड़ा सा संशोधित किया है - मूल रूप से फ़ाइल खोलने वाले खंडों में 'बी' ध्वज जोड़ा गया। क्या आप इसके साथ प्रयास कर सकते हैं? –

16

, याद रखें कि आप केवल वर्तमान डोमेन के लिए कुकी जोड़ सकते हैं। यदि आप अपना गोल्ज खाता जोड़ना चाहते हैं।

करो

browser.get('http://google.com') 
for cookie in cookies: 
    browser.add_cookie(cookie) 
+0

यह उनके दस्तावेज में होना चाहिए :( – Tjorriemorrie

0

जब आप सत्र के लिए सत्र से कुकीज़ की आवश्यकता है वहाँ एक और तरीका यह करने के लिए है, ताकि प्रोफाइल के रूप फ़ोल्डरों का उपयोग करने के क्रोम विकल्प उपयोगकर्ता के डेटा-निर्देशिका का उपयोग करें, मैं चलाएँ:

chrome_options = Options() 
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options) 
driver.get("www.google.com") 

आप यहां लॉग इन कर सकते हैं जो मानवीय बातचीत की जांच करते हैं, मैं यह करता हूं और फिर कुकीज़ जो मुझे चाहिए, हर बार जब मैं उस फ़ोल्डर के साथ वेबड्राइवर शुरू करता हूं तो सबकुछ वहां होता है। आप एक्सटेंशन को मैन्युअल रूप से इंस्टॉल भी कर सकते हैं और उन्हें प्रत्येक सत्र में रख सकते हैं। Secon बार जब मैं चलाने के लिए, सभी कुकीज़ हैं:

chrome_options = Options() 
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options) 
driver.get("www.google.com") #Now you can see the cookies, the settings, Extensions and the logins done in the previous session are present here 

लाभ आप लोड करने के लिए, उतारना कुकीज़, स्थापना करते और एक्सटेंशन, परिवर्तन सेटिंग्स की आवश्यकता के बिना विभिन्न सेटिंग और कुकीज़, एक्सटेंशन के साथ एक से अधिक फ़ोल्डर का उपयोग कर सकते है , कोड के माध्यम से लॉग इन बदलें, और इस प्रकार प्रोग्राम ब्रेक के तर्क का कोई तरीका नहीं है, आदि। यह कोड द्वारा सभी को करने के लिए हैविन से भी तेज़ है।

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