Python selenium get_cookies获取cookie不全的解决方案

作者:zhu6201976 时间:2021-09-17 07:39:52 

一、场景

浏览器访问淘宝,再访问天猫,继续访问1688......

此时,浏览器中的cookie是什么状态?

显然,包含上述3个网站的所有cookie

Python selenium get_cookies获取cookie不全的解决方案

二、此时,若通过selenium  get_cookies()方法,能获取到浏览器所有cookie吗?

答案显然是不能的(webdriver安全考虑),此方法只能获取当前请求域名下的所有cookie

故访问天猫或1688会登录失败。

那可以通过什么方式,将浏览器所有cookie获取?

方案一:基于浏览器内核,打造属于自己的浏览器,解除限制

方案二:挂代理,Fiddler,mitmproxy等

方案三:分别请求对应域名,获取所有cookie(推荐,笔者首创)

三、样例代码

lmdd_url = f'{self.root_lmdd_url}/seller/dashboard/plan/order'

self.chrome.get(lmdd_url)
cookie_list = self.chrome.get_cookies()

self.chrome.get(self.root_lmdd_api_url)
cookie_list_api = self.chrome.get_cookies()

cookie_list.extend(cookie_list_api)
self.update_session_cookie(cookie_list)

补充:selenium通过add_cookie()添加cookie

selenium通过add_cookie()添加cookie,再次访问网站时,服务器直接读取浏览器cookie

第一次登陆 手动输入用户名密码

# -*- coding:utf-8 -*-

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
sleep(2)
driver.find_element_by_xpath('//*[@id="u1"]/a[7]').click()

driver.add_cookie({'name':'userName','value':'youname'})
driver.add_cookie({'name':'password','value':'youpassword'})

sleep(30)
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')

来源:https://blog.csdn.net/zhu6201976/article/details/125665774

标签:selenium,get,cookies,cookie
0
投稿

猜你喜欢

  • ASP同一站点下gb2312和utf-8页面传递参数乱码的终极解决方法

    2011-02-20 11:00:00
  • 浅谈anaconda python 版本对应关系

    2023-12-06 01:02:35
  • python相对企业语言优势在哪

    2021-08-27 23:37:21
  • python-opencv中的cv2.inRange函数用法说明

    2022-09-29 23:39:08
  • python2 与 python3 实现共存的方法

    2023-06-13 23:56:29
  • python卸载后再次安装遇到的问题解决

    2022-06-10 01:58:09
  • python爬取招聘要求等信息实例

    2021-01-27 21:22:36
  • 实例探究Python以并发方式编写高性能端口扫描器的方法

    2022-01-12 14:38:52
  • 如何测试字符串的长度?

    2009-11-11 20:02:00
  • python实现图片转换成素描和漫画格式

    2023-09-20 14:44:25
  • 总结Python编程中函数的使用要点

    2021-03-15 01:49:52
  • python多线程分块读取文件

    2023-10-29 18:48:51
  • ASP Cookies操作的详细介绍与实例代码

    2011-03-10 10:53:00
  • python 实现在Excel末尾增加新行

    2023-11-26 09:27:52
  • Python网络编程使用select实现socket全双工异步通信功能示例

    2023-04-10 21:06:59
  • 10点优化sql数据库技巧

    2008-06-09 15:00:00
  • 利用Python编写简易的录制屏幕小工具

    2023-12-17 04:34:57
  • pytest中的fixture基本用法

    2023-07-14 12:26:45
  • python 缺失值处理的方法(Imputation)

    2023-03-04 11:09:14
  • PyTorch中torch.utils.data.DataLoader简单介绍与使用方法

    2023-10-30 07:12:00
  • asp之家 网络编程 m.aspxhome.com