selenium获取cookie怎么不一样呢
用selenium来获取的cookie和我用正常浏览器登录的cookie完全不一样,是怎么个情况呢没法传图,2种方式获取的cookie都是登录了的状态,但用selenium的cookie使用有的内容会显示不能登录 本帖最后由 1q23w31 于 2020-7-28 20:44 编辑
cookie是用来标识用户的,不同的访问当然cookie不一样,,cookie还具有时效性,以及对访问的记录唯一性,用一个登录的cookie,在别的程序打开,网站当然不允许
这就好比别人拿着你的一张过期的银行卡去银行取钱,虽然账户是一个,但银行不认。 本帖最后由 suchocolate 于 2020-7-30 10:10 编辑
selenium的cookies和浏览器看到的不太一样:url = 'https://www.baidu.com'
driver = webdriver.Firefox()
driver.get(url)
print(driver.get_cookies())打印出来是这种:
所以让selenium用cookie访问,需要按照上面网站返回的设置这些参数:
cookie = {'name': 'foo', 'value': 'bar', 'path': '/', 'domain': 'baidu.com', 'secure': 'False', 'httpOnly': 'False', 'expiry': 'None'}
driver.add_cookie(cookie)
driver.get(url)
driver.get_cookies()另外也可以用pickle保存cookie,下次直接使用:
# 1)保存:
driver.get(url)
time.sleep(10)
pickle.dump(driver.get_cookies(), open("cookies.pkl", "wb"))
# 2) 使用:
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)
driver.get(url)
页:
[1]