Python'un Selenium WebDriver'sindeki tüm çerezleri bir txt dosyasına nasıl kaydedebilirim? Belgeler getCookies işlevi hakkında çok fazla şey söylemiyor.Python + Selenium WebDriver kullanılarak tanımlama bilgileri nasıl kaydedilir ve yüklenir?
cevap
Geçerli tanımlama bilgilerini, turşu kullanarak python nesnesi olarak kaydedebilirsiniz. Örneğin:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump(driver.get_cookies() , open("cookies.pkl","wb"))
ve daha sonra bunları geri eklemek için:
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)
sadece AKIM etki alanı için çerez ekleyebilir unutmayın. Goolge hesabınızı eklemek istiyorsanız .
bunu yapmak için başka bir yol yoktur oturumdan oturuma çerezleri ihtiyaçbrowser.get('http://google.com')
for cookie in cookies:
browser.add_cookie(cookie)
Bu, kendi belgelerinde olmalıdır :( – Tjorriemorrie
yapın profilleri gibi klasörleri kullanmak için Chrome seçenekleri kullanıcı veri-dir kullanmak, ben çalıştırın:
chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com")
Burada, insan etkileşimini kontrol eden girişleri yapabilirsiniz, bunu yapıyorum ve şimdi her zaman, Webdriver'ı her zaman bu klasörde başlattığım çerezler var. Eklentileri manuel olarak yükleyebilir ve her oturumda sahip olabilirsiniz. Ben çalıştırmak Secon zaman, tüm çerezleri orada:
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
avantajı, boşaltmak çerezler, yükleme ve kaldırma Uzantıları, ayarları değiştirmek yüklemek için gerek kalmadan farklı ayarları ve çerezler, uzantıları ile birden fazla klasör kullanabileceği başka , kod aracılığıyla girişleri değiştirmek, ve böylece program sonu mantığına sahip olmanın hiçbir yolu, vb Ayrıca, bu kod tarafından hepsini yapmak için havin daha hızlıdır.
"Pickle protokolünün <= 2 olması" hatası alıyorum. Gönderdiğiniz turşu kodunu kullanarak. Ne anlama geliyor? Argümanlara atıfta mıdır? –
Bu aynı şeyi yapar mı? cookieFile = open ("cookies.pkl", "w") dump = pickle.dumps (driver.get_cookies()) cookieFile.write (döküm) –
Merhaba Aaron, örnek biraz değiştirdim - temel olarak 'b' bayrağı dosyaya açık bölümler eklendi. Bununla deneyebilir misin? –