Selenium中get_cookies()和add_cookie()的用法详解

Aria
Aria
发布时间:2026-10-13 | 3人浏览过
原创

本文详解Selenium中get_cookies()与add_cookie()函数的使用方法。通过获取当前浏览器Cookie并保存为JSON文件,后续爬虫任务可直接读取该文件并利用add_cookie()注入Cookie,从而绕过登录验证。该方法特别适用于验证码识别困难或需要高频定时爬取且不想频繁登录的场景,有效提升爬虫稳定性和效率。

Selenium获取Cookie的方法

在使用Selenium进行网页爬取时,部分网站要求用户登录才能访问内容。此时,利用Selenium获取并携带Cookie是一种高效方案。Selenium内置了get_cookies()函数,用于提取当前浏览器会话中的所有Cookie。该函数返回的结果是一个列表,其中每个元素代表一个单独的Cookie,且以字典形式存储了Cookie的各项属性(如名称、值、路径、域名等)。

保存Cookie到文件


dictCookies = browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# print(jsonCookies)
with open('anquan.txt', 'w') as f:
  f.write(jsonCookies)

需要注意的是,从get_cookies()获取的数据结构是一个完整的Cookie列表。在实际应用中,通常需要将这个列表转换为JSON格式以便持久化存储,例如写入文本文件,从而为后续的自动化任务提供数据支持。

Cookie数据结构示例


{'name': 'QCARJSESSIONID', 'value': 'BBmPcsfClCknfQX1cN2MLMgKXZGtFWqsBvjN9mbM9tmbL38hMmw4!1426878101', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True}
{'name': 'BIGipServercar_qcar_poool', 'value': '1191316140.16671.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False}
{'name': 'chinainsuranceJSESSIONID', 'value': 'rkgncsfG8pnrhh8x1CvNy46zHplyLkTjyv1LL2hk4wDrkD9Mjz9Y!2078734058', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True}
{'name': 'BIGipServercar_core_pool', 'value': '1191316140.17951.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False}

使用add_cookie()注入Cookie

成功获取Cookie后,下一步是将其应用到新的浏览器实例中以实现免登录访问。这可以通过add_cookie()函数完成。该函数允许程序手动向浏览器添加指定的Cookie字典,从而模拟已登录状态。

读取并应用Cookie代码示例


with open('anquan.txt', 'r', encoding='utf8') as f:
   listCookies = json.loads(f.read())
 print('%%%%%%%%%%%%%%%%%', listCookies)
 for cookie in listCookies:
   obj.add_cookie(cookie)
 obj.get('https://qcar.apiins.com/qcar')
 # 读取完cookie刷新页面
 obj.refresh()

免登录场景的应用优势

通过上述步骤,我们实现了携带Cookie访问网页,进而达到免登录的效果。有人可能会问,直接登录不就行了吗?在某些特定场景下,这种方法更具优势。例如,当验证码识别率较低、运行监视爬虫或需要高频定时爬取(如每五分钟或两分钟执行一次)时,每次请求都重新登录不仅繁琐,还容易触发风控。因此,一种常见的策略是分离登录与抓取过程:一个专门的进程负责登录并定期(如每30分钟)更新Cookie文件,而其他爬虫任务只需读取最新的Cookie文件即可正常运行。

以上介绍了Selenium中Cookie获取与添加的核心用法,希望能为读者的学习和工作提供帮助。如有更多疑问,欢迎继续探索相关技术文档或社区资源。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表