当前位置: 首页 > news >正文

cookie in selenium 定时更新token

1.selenium添加cookie访问 需要登录才能访问的链接

selenium 访问 “https://developer.org.com”,如果没登陆,则跳转到"https://console.org.com/login",此时selenium取到的cookie的domain是:.console.org.com。

而domain 是 .console.org.com 去访问 “https://developer.org.com”,也是不匹配,访问失败,所以需要手动定义domain,可以取相同部分:.org.com。

def cookie_login_data():url = login_urlpayload = {"grant_type": "password","username": user_password[0],"password": user_password[1],"client_id": "web_platform","client_secret": "changeit"}res = requests.request("POST", url, json=payload)access_token = res.json().get("access_token")# selenium 访问 “https://developer.org.com”,如果没登陆,则跳转到"https://console.org.com/",此时的domain是:.console.org.com# domain是:.console.org.com 去访问 “https://developer.org.com”,也是不匹配,访问失败,所以domain取相同部分:.org.com# 需要传domain,否则cooke不会生效cookie = {'domain': domain, "name": "access_token", "value": access_token}return cookie

2.定时更新token

公司的cookie的token默认的有效期是1小时,如果爬虫的时间超过1小时后,1小时后的链接都会爬取失败,所以,需要判断执行时间超过一定阈值,则更新cookie的token

def refresh_driver_cookie(start_time, _driver):endtime = datetime.datetime.now()print("endtime",endtime)duringtime = endtime - start_timeprint("duringtime",duringtime.seconds)# token默认是1小时失效,设置如果运行了30分钟,则重新获取登录的token写入到selenium的cookieif duringtime.seconds > 60*30:print("duringtime, to do update cookie")# 删除所有的cookie_driver.delete_all_cookies()# 获取新的cookie,并写入cookie = cookie_login_data()_driver.add_cookie(cookie)# 重置开始时间start_time = endtimeprint("start_time",start_time)# 需要把重置的时间return回去,让对象self.time接收更新,否则self.time一直都是记录的开始时间return start_time, _driverelse:# 如果不满足条件,则直接返回记录的开始时间、返回添加初始cookie的driverreturn start_time, _driver

http://www.lryc.cn/news/286882.html

相关文章:

  • 【MIdjourney】一些材质相关的关键词
  • 递归组件怎么实现无线滚动
  • 致远OA如何开发 第十篇 数据库
  • 信息检索与数据挖掘 | (十)线性回归与逻辑回归
  • 【issue-halcon例程学习】measure_arc.hdev
  • RKE快速搭建离线k8s集群并用rancher管理界面
  • 代码随想录算法训练营第十四天|● 理论基础 ● 递归遍历 ● 迭代遍历 ● 统一迭代
  • ❤css实用
  • web系统架构基于springCloud的各技术栈
  • 【第十五课】数据结构:堆 (“堆”的介绍+主要操作 / acwing-838堆排序 / 时间复杂度的分析 / c++代码 )
  • el-select选项过多导致页面卡顿,路由跳转卡顿
  • 信息流广告参数回传工具怎么做联调
  • matlab appdesigner系列-常用18-表格
  • 密码学的100个基本概念
  • Python中的进制转换——bin/oct/hex函数与int函数
  • RT-Thread 瑞萨 智能家居网络开发:RA6M3 HMI Board 以太网+GUI技术实践
  • 力扣刷题第十天 美丽塔 一
  • c# ADODB.Recordset实例调用Fields报错
  • windows和linux下SHA1,MD5,SHA256校验办法
  • 高新技术企业申报需要具备哪些条件?
  • 测试不拘一格——掌握Pytest插件pytest-random-order
  • DophineScheduler通俗版
  • 企业如何稳步开启SASE实施之路
  • 【Oracle】收集Oracle数据库内存相关的信息
  • MySQL也开始支持JavaScript了
  • 百度大脑 使用
  • Spring Boot 中的外部化配置
  • 10个常考的前端手写题,你全都会吗?(下)
  • Java 面试题库
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day6【数学基础-坐标变换】