PlayWright检测用户登录保存Cookie

背景

本需求以稀土掘金社区为例

采用PlayWright包

pip install playwright

思路

用户打开软件,提示进入浏览器登录后进行操作

将expect_response()的超时时间设置为无限毫秒

expect_response()函数就是等待指定响应发生的方法

通过手动抓包发现

掘金社区登陆成功后响应返回接口地址如下

https://api.juejin.cn/user_api/v1/user/profile_id

接下来判断返回的json数据是否表示成功

如果含有 “ok” 或者 “success” 的代码或者信息并且此时浏览器页面登陆成功

则表示登录成功

返回的json数据格式如下

{'err_no': 0, 'err_msg': 'success', 'data': {'profile_id': '627171387769035'}}

此时将持久化数据存入storage.json文件中

下次进入新建context时可以根据此文件,直接取出已登陆状态

完整代码

“`python

– coding: utf-8 –

import re
from playwright.sync_api import sync_playwright
from playwright._impl._errors import TargetClosedError
print(“请进入浏览器登录后使用”)
try:
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context(
storage_state=”storage.json”
)
page = context.new_page()
page.goto(“https://www.juejin.cn/”)
with page.expect_response(re.compile(r”https://api.juejin.cn/user_api/v1/user/profile_id”),timeout=1000000) as response:
data = response.value
print(data.json())
context.storage_state(path=”storage.json”)
context.close()
browser.close()
except TargetClosedError:
print(“浏览器关闭”)
pass
“`

附录

自动化上传文章软件 https://gitee.com/xiaofengsb/post-sync

云奕科软 https://yunyicloud.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容