我正在尝试将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文件时,我当然禁用了p4
到load ()
pkl
代码。
例如,如果我仅使用wb选项创建第一个google.com
pkl
cookie文件,它将重新加载该文件。但是,如果我在所有域中都使用wb,它只会删除已经导出的cookie,这不是我想要的。我想保存所有域的所有cookie,然后再将它们全部重新备份。
希望有人可以提供帮助,谢谢。
答案 0 :(得分:1)
根据设计,Cookie是按域划分的,否则存在安全漏洞。因此,无论何时导航到另一个站点,您都只能看到该站点的cookie。
您还可以在开发人员工具中查看cookie。您会看到它的行为相同。