python - 如何在 selenium 网格节点之间保留和共享身份验证数据?
问题描述
我在 docker 中使用硒网格。我想登录到我想在并行运行许多任务之前抓取的网站。一般来说,我想登录然后保留身份验证数据并在我的所有节点之间共享。有可能还是有更好的方法来做到这一点?因为当我并行运行所有任务时,我没有身份验证数据,我需要在每个任务上登录
我的作曲:
services:
selenium-hub:
image: selenium/hub:3.141.59-20210311
container_name: selenium-hub
environment:
GRID_MAX_SESSION: 16
ports:
- "4442:4442"
- "4443:4443"
- "4444:4444"
chrome:
image: selenium/node-chrome:3.141.59-20210311
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
HUB_HOST: selenium-hub
HUB_PORT: 4444
NODE_MAX_SESSION: 5
NODE_MAX_INSTANCES: 5
解决方案
我没有找到如何重用会话,但我找到了如何自己做。首先我登录然后保存cookies
# login logic...
cookies = driver.get_cookies()
之后,我可以将这些 cookie 设置到我的所有节点。
# Before setup your cookies go to related doamin. Without this cookies will not be setup
for cookie in cookies:
driver.add_cookie(cookie)
推荐阅读
- reactjs - 如何使用物化和 scss 防止 @media 查询错误
- javascript - JavaScript:对象键的快速随机索引
- ios - 无法编译 xcode 项目,因为缺少 info.plist
- javascript - Tensorflow.js 分词器
- javascript - Javascript - 在子块中重新定义变量 // 变量阴影
- python - Sklearn fit vs predict,列的顺序很重要吗?
- python - 异步语法错误
- java - 为什么我得到 char 数组的“非法表达式开始”和方法的“预期的类、接口或枚举”?
- linux - 在 makefile 中指定文件名
- javascript - 我想知道如何创建一个按钮,根据选择的单选按钮显示一个最终结果