Python使用Pickle从一个文件导出和导入多个Cookie

时间:2018-08-11 10:05:48

标签: python google-chrome selenium cookies pickle

我正在尝试将Cookie从多个域导出到一个pickle文件。但是无法将它们重新加载。.

我的代码:

p1 = pickle.load(open("/webdrivers/cookies_D.pkl", "rb"))
for cookie in p1:
    driver.add_cookie(cookie)

p2 = pickle.load(open("/webdrivers/cookies_D.pkl", "rb"))
for cookie in p2:
    driver.add_cookie(cookie)

p3 = pickle.load(open("/webdrivers/cookies_D.pkl", "rb"))
for cookie in p3:
    driver.add_cookie(cookie)

p4 = pickle.load(open("/webdrivers/cookies_D.pkl", "rb"))
for cookie in p4:
    driver.add_cookie(cookie)

driver.get("https://www.google.com")
sleep(4)
p1 = pickle.dump( driver.get_cookies() , open("/webdrivers/cookies_D.pkl","wb"))
sleep(4)

driver.get("https://www.youtube.com")
sleep(4)
p2 = pickle.dump( driver.get_cookies() , open("/webdrivers/cookies_D.pkl","ab"))
sleep(4)

driver.get("https://www.facebook.com")
sleep(4)
p3 = pickle.dump( driver.get_cookies() , open("/webdrivers/cookies_D.pkl","ab"))
sleep(4)

driver.get("https://www.wikipedia.org")
sleep(4)
p4 = pickle.dump( driver.get_cookies() , open("/webdrivers/cookies_D.pkl","ab"))
sleep(4)

当我创建p1 cookie文件时,我当然禁用了p4load () pkl代码。

例如,如果我仅使用wb选项创建第一个google.com pkl cookie文件,它将重新加载该文件。但是,如果我在所有域中都使用wb,它只会删除已经导出的cookie,这不是我想要的。我想保存所有域的所有cookie,然后再将它们全部重新备份。

希望有人可以提供帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

根据设计,Cookie是按域划分的,否则存在安全漏洞。因此,无论何时导航到另一个站点,您都只能看到该站点的cookie。

您还可以在开发人员工具中查看cookie。您会看到它的行为相同。