鱼C论坛

 找回密码
 立即注册
查看: 1387|回复: 2

[已解决]selenium获取cookie怎么不一样呢

[复制链接]
发表于 2020-7-28 20:31:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用selenium来获取的cookie和我用正常浏览器登录的cookie完全不一样,是怎么个情况呢

没法传图,2种方式获取的cookie都是登录了的状态,但用selenium的cookie使用有的内容会显示不能登录
最佳答案
2020-7-28 20:35:14
本帖最后由 1q23w31 于 2020-7-28 20:44 编辑

cookie是用来标识用户的,不同的访问当然cookie不一样,,cookie还具有时效性,以及对访问的记录唯一性,用一个登录的cookie,在别的程序打开,网站当然不允许
这就好比别人拿着你的一张过期的银行卡去银行取钱,虽然账户是一个,但银行不认。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-28 20:35:14 | 显示全部楼层    本楼为最佳答案   
本帖最后由 1q23w31 于 2020-7-28 20:44 编辑

cookie是用来标识用户的,不同的访问当然cookie不一样,,cookie还具有时效性,以及对访问的记录唯一性,用一个登录的cookie,在别的程序打开,网站当然不允许
这就好比别人拿着你的一张过期的银行卡去银行取钱,虽然账户是一个,但银行不认。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-28 21:34:38 | 显示全部楼层
本帖最后由 suchocolate 于 2020-7-30 10:10 编辑

selenium的cookies和浏览器看到的不太一样:
url = 'https://www.baidu.com'
driver = webdriver.Firefox()
driver.get(url)
print(driver.get_cookies())
打印出来是这种:
2.png
所以让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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表