首页 > 其他分享 >playwright自动登录获取cookie/ck

playwright自动登录获取cookie/ck

时间:2024-10-11 16:32:56浏览次数:1  
标签:ck playwright random json cookie time page

有些登录逆向起来比较麻烦,就用了自动化

import time
import json
import random
from playwright.sync_api import Playwright, sync_playwright, expect
# https://xxxx.edu.cn/appportalweb/seatspace/
"""
需要提前10分钟获取ck
"""

def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=True)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://xxxx.edu.cn/appportalweb/seatspace/")
    page.get_by_placeholder("职工号/学号/邮箱/别名").click()
    time.sleep(random.uniform(.5, .6))
    page.get_by_placeholder("职工号/学号/邮箱/别名").fill("20210xxxx")
    page.get_by_role("textbox", name="密码").click()
    time.sleep(random.uniform(.5, .6))
    page.get_by_role("textbox", name="密码").fill("xxxx2xxx24")
    time.sleep(random.uniform(.2, .3))
    page.get_by_role("button", name="登 录").click()

    cookies = context.cookies()
    print(cookies)

    # target_names = ['IDSTGC']
    found_cookie_value = next((cookie['value'] for cookie in cookies if cookie['name'] == 'IDSTGC'), None)
    print(found_cookie_value)



    cookie_data = {'IDSTGC': found_cookie_value
                   # 添加时间
                   , 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                   }

    # 将数据写入 JSON 文件
    with open('config.json', 'w') as json_file:
        json.dump(cookie_data, json_file)

    # ---------------------
    time.sleep(random.uniform(.5, .6))

    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

标签:ck,playwright,random,json,cookie,time,page
From: https://www.cnblogs.com/code3/p/18458793

相关文章

  • Flutter布局(4):层叠布局(Stack、Positioned)
    层叠布局和Web中的绝对定位、Android中的Frame布局是相似的,子组件可以根据距父容器四个角的位置来确定自身的位置。层叠布局允许子组件按照代码中声明的顺序堆叠起来。Flutter中使用Stack和Positioned这两个组件来配合实现绝对定位。Stack允许子组件堆叠,而Positioned用于根据......
  • 消息队列详细介绍、工作原理,kafka与RocketMQ的比对
    消息队列:当一个服务处理量为100,而另一个服务发送量为200,这时候多余的消息会被丢弃,如果想要全部处理,我们必须加入队列,这个队列用来存储消息的信息,通过offset表示当前处理的位置。注意此时队列还位于进程中,也就是服务进程,我们的进程一旦挂掉,未被处理的消息会直接丢失,我们不希望......
  • Linux下权限设置之suid、sgid、sticky
    linux文件普通权限rwxLinux中文件的普通权限一般为:rwx,对应与数字表示:421,除此之外,文件还有三种特殊权限,就这是我们本节要讲的三种特殊文件权限。linux文件特殊权限suid、sgid、stickylinux文件的三种特殊权限分别是:suid权限、sgid权限、sticky权限;其中suid权限作用于文件属主,sgid......
  • ant-design date-picker 可以选择当天,时间不能选择过去的小时
    不得不说moment真厉害啊,是我之前低估他了我这里是可以选择到具体的分钟的<a-date-pickerv-model="chooseDate"placeholder="年-月-日":inputReadOnly="true":show-time="showTime"......
  • 股市期市内外盘高频分钟tick及均线策略分享
    【数据库】银河金融数据库(yinhedata.com)可以获取大量历史行情数据,包含分钟,tick,日。不限于国内外,股票期货基金,ETF、期权等【策略分享】一、引言均线策略作为技术分析的重要工具,广泛应用于股票、期货等市场。然而,许多投资者仅停留在基础用法,难以发挥均线策略的真正价值。本文将......
  • Synchronized锁和Reentrantlock的区别和联系以及锁升级
    二者的底层实现:Synchronized就是基于monitor对象主要的为Owner获得这个锁资源的线程唯一标识符(线程ID)Count线程获得几次锁(可重入锁的实现)ContentionList等待队列(线程加锁失败的情况下)Reentrantlock是基于AQS这个就是表示是哪一个线程获得这个锁资源    ......
  • Ubuntu系统 用docker安装jenkins
    1.1.1服务器准备如果刚买的服务器是ubuntu一开始默认用户是ubuntu需要在Ubuntu云服务器上使用root用户登录实例1.设置root密码sudopasswdroot输入两次密码返回一下内容表示密码设置成功passwd:passwordupdatedsuccessfully执行以下命令,打开sshd_config配置文件......
  • Debian12 docker容器使用N卡GPU(以emby为例,其他docker容器也可以参考)
    加源安装curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey>/etc/apt/keyrings/nvidia-docker.keycurl-s-Lhttps://nvidia.github.io/nvidia-docker/debian11/nvidia-docker.list>/etc/apt/sources.list.d/nvidia-docker.listsed-i-e"s/^deb/de......
  • rocky9 修改网卡ip地址的方法2024
    2024-10-11 rocky9修改网卡ip地址的方法#修改配置文件vim/etc/NetworkManager/system-connections/ens160.nmconnection[connection]id=ens160uuid=ebc91b5b-ef24-37ca-8cc8-c0f6e43172fatype=ethernetautoconnect-priority=-999interface-name=ens160timestam......
  • 运行使用Electron-forge打包的electron package时遇到在js文件中执行的exec命令和在渲
    js文件中执行的exec命令出错很可能是项目中使用了一些非html,css,js的源文件,比如用了Makefile来编译了cpp代码,或者执行的exec命令为cpdir/something.cpp之类的文件操作命令。可以使用修改forge.config.js文件配置的方式,使得npmrunmake的时候自动把Makefile等exec命令中用到......