鱼C论坛

 找回密码
 立即注册
查看: 1560|回复: 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,在别的程序打开,网站当然不允许
这就好比别人拿着你的一张过期的银行卡去银行取钱,虽然账户是一个,但银行不认。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

使用道具 举报

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

selenium的cookies和浏览器看到的不太一样:
  1. url = 'https://www.baidu.com'
  2. driver = webdriver.Firefox()
  3. driver.get(url)
  4. print(driver.get_cookies())
复制代码
打印出来是这种:
2.png
所以让selenium用cookie访问,需要按照上面网站返回的设置这些参数:
  1. cookie = {'name': 'foo', 'value': 'bar', 'path': '/', 'domain': 'baidu.com', 'secure': 'False', 'httpOnly': 'False', 'expiry': 'None'}
  2. driver.add_cookie(cookie)
  3. driver.get(url)
  4. driver.get_cookies()
复制代码
另外也可以用pickle保存cookie,下次直接使用:
  1. # 1)保存:
  2. driver.get(url)
  3. time.sleep(10)
  4. pickle.dump(driver.get_cookies(), open("cookies.pkl", "wb"))

  5. # 2) 使用:
  6. cookies = pickle.load(open("cookies.pkl", "rb"))
  7. for cookie in cookies:
  8.     driver.add_cookie(cookie)
  9. driver.get(url)
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 08:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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