冷月半明 2022-05-09 00:46 采纳率: 84.6%
浏览 387
已结题

python selenium库添加cookie,登录时还是没有登录上,如何解决?

在网上搜了好多博客,根据博客写了两个函数,分别获取cookie和添加cookie并测试登录.

def get_cookie():
    dirver = webdriver.Firefox()
    dirver.get('https://juejin.cn/')
    dictCookies = dirver.get_cookies()  # 获得所有cookie信息(返回是字典)
    print(dictCookies)
    print(type(dictCookies))
    jsonCookies = json.dumps(dictCookies)  # dumps是将dict转化成str格式
    print(jsonCookies)
    print(type(jsonCookies))
    # 登录完成后,将cookies保存到本地文件
    time.sleep(60)
    with open("cookies_fofa.json", "w") as fp:
        fp.write(jsonCookies)
    print(jsonCookies)
    print(type(jsonCookies))

def ceshi():
    browser = webdriver.Firefox()
    browser.get("https://juejin.cn/")
    browser.delete_all_cookies()  # 删除所有cookie信息
    with open('cookies_fofa.json', 'r', encoding='utf-8') as f:
        listCookies = json.loads(f.read())  # loads是将str转化成dict格式
    print(listCookies)
    for cookie in listCookies:
            browser.add_cookie(cookie)


       # print(cookie.get("name")+cookie.get("value"))
       #  browser.add_cookie({  # 此处模仿之前生成的cookies_fofa.json的格式写即可,要用单引号,因为已经转成dict格式了
       #      'name': cookie.get("name"),
       #      'value': cookie.get("value"),
       #      'path':  cookie.get("path"),
       #     # 'domain':  cookie.get("domain"),
       #      'secure': False,
       #      'httpOnly': False,
       #      'expiry':  cookie.get("expiry"),
       #      'sameSite':  cookie.get("sameSite")
       #  })



    browser.get("https://juejin.cn/")
get_cookie()
ceshi()


``
程序输出:几乎一模一样,除了false的f的大小写.

```python
[{'name': 'ttcid', 'value': 'd473b09648ae452d8a04fa111af9bc4c38', 'path': '/', 'domain': 'juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1683563767, 'sameSite': 'None'}, {'name': '_tea_utm_cache_2608', 'value': 'undefined', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1746635767, 'sameSite': 'None'}, {'name': '_ga', 'value': 'GA1.2.2070251714.1652027768', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1715099767, 'sameSite': 'None'}, {'name': '_gid', 'value': 'GA1.2.1692958009.1652027768', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1652114167, 'sameSite': 'None'}, {'name': 'MONITOR_WEB_ID', 'value': '5b2cf523-605f-4560-83f1-ec4aaa802dc8', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1659803767, 'sameSite': 'None'}]
<class 'list'>
[{"name": "ttcid", "value": "d473b09648ae452d8a04fa111af9bc4c38", "path": "/", "domain": "juejin.cn", "secure": false, "httpOnly": false, "expiry": 1683563767, "sameSite": "None"}, {"name": "_tea_utm_cache_2608", "value": "undefined", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1746635767, "sameSite": "None"}, {"name": "_ga", "value": "GA1.2.2070251714.1652027768", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1715099767, "sameSite": "None"}, {"name": "_gid", "value": "GA1.2.1692958009.1652027768", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1652114167, "sameSite": "None"}, {"name": "MONITOR_WEB_ID", "value": "5b2cf523-605f-4560-83f1-ec4aaa802dc8", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1659803767, "sameSite": "None"}]
<class 'str'>
[{"name": "ttcid", "value": "d473b09648ae452d8a04fa111af9bc4c38", "path": "/", "domain": "juejin.cn", "secure": false, "httpOnly": false, "expiry": 1683563767, "sameSite": "None"}, {"name": "_tea_utm_cache_2608", "value": "undefined", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1746635767, "sameSite": "None"}, {"name": "_ga", "value": "GA1.2.2070251714.1652027768", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1715099767, "sameSite": "None"}, {"name": "_gid", "value": "GA1.2.1692958009.1652027768", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1652114167, "sameSite": "None"}, {"name": "MONITOR_WEB_ID", "value": "5b2cf523-605f-4560-83f1-ec4aaa802dc8", "path": "/", "domain": ".juejin.cn", "secure": false, "httpOnly": false, "expiry": 1659803767, "sameSite": "None"}]
<class 'str'>
[{'name': 'ttcid', 'value': 'd473b09648ae452d8a04fa111af9bc4c38', 'path': '/', 'domain': 'juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1683563767, 'sameSite': 'None'}, {'name': '_tea_utm_cache_2608', 'value': 'undefined', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1746635767, 'sameSite': 'None'}, {'name': '_ga', 'value': 'GA1.2.2070251714.1652027768', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1715099767, 'sameSite': 'None'}, {'name': '_gid', 'value': 'GA1.2.1692958009.1652027768', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1652114167, 'sameSite': 'None'}, {'name': 'MONITOR_WEB_ID', 'value': '5b2cf523-605f-4560-83f1-ec4aaa802dc8', 'path': '/', 'domain': '.juejin.cn', 'secure': False, 'httpOnly': False, 'expiry': 1659803767, 'sameSite': 'None'}]

请问我的问题出在了那里?

  • 写回答

5条回答 默认 最新

  • 冷月半明 2023-09-16 18:31
    关注

    花了一会又看了一下之前的代码,已解决.问题出在get_cookie()函数逻辑上,正确逻辑应该是打开浏览器----睡眠(同时手动登录)---获取cookie存在本地.上述代码错误逻辑为:打开浏览器-------获取cookie ----睡眠(同时手动登录)---存在本地

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月24日
  • 已采纳回答 9月16日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错