【Python】使用 Playwright 检查登录状态并获取 LocalStorage 数据教程
【代码】Python爬虫,Playwright定期检测登陆信息是否有效。
本教程将指导你如何使用 Playwright 自动化浏览器操作,检查用户登录状态,并从浏览器的 localStorage 中获取登录信息(如 token)。Playwright 是一个强大的自动化测试工具,支持多种浏览器(如 Chromium、Firefox、WebKit),并提供了丰富的 API 来模拟用户操作。
1. 准备工作
1.1 安装 Playwright
首先,你需要安装 Playwright。可以通过以下命令安装:
pip install playwright
安装完成后,运行以下命令下载浏览器二进制文件:
playwright install
1.2 了解 localStorage
localStorage 是浏览器提供的一种持久化存储机制,用于在客户端存储数据。通常,登录成功后,服务器会将用户的登录凭证(如 token)存储在 localStorage 中,以便后续请求使用。
2. 编写 Python 脚本
接下来,我们将编写一个 Python 脚本来检查登录状态并获取 localStorage 中的 token。
2.1 创建 Python 文件
创建一个新的 Python 文件,例如 check_login_status.py。
2.2 编写代码
在文件中编写以下代码:
from playwright.sync_api import sync_playwright
def check_login_status(url):
with sync_playwright() as p:
# 启动浏览器(默认使用 Chromium)
browser = p.chromium.launch(headless=False) # headless=False 表示显示浏览器窗口
page = browser.new_page()
try:
# 访问目标网页
page.goto(url)
print(f"正在访问: {url}")
# 等待页面完全加载
page.wait_for_load_state("networkidle") # 等待网络空闲
page.wait_for_timeout(3000) # 额外等待 3 秒,确保页面完全加载
# 从 localStorage 获取 token 数据
token_data = page.evaluate("localStorage.getItem('token')")
print("[LocalStorage] token 数据:", token_data)
# 检查 token 是否有效
if token_data and len(token_data.strip()) > 0:
print("登录成功")
else:
print("登录失败")
except Exception as e:
print(f"检查登录状态时发生错误: {e}")
finally:
# 关闭浏览器
browser.close()
# 调用函数检查登录状态
check_login_status("https://example.com/login") # 替换为你的登录页面 URL
2.3 代码解释
sync_playwright(): 使用 Playwright 的同步 API。p.chromium.launch(headless=False): 启动 Chromium 浏览器,headless=False表示显示浏览器窗口。page.goto(url): 访问目标网页。page.wait_for_load_state("networkidle"): 等待页面网络请求空闲,确保页面完全加载。page.wait_for_timeout(3000): 额外等待 3 秒,确保页面完全加载。page.evaluate("localStorage.getItem('token')"): 执行 JavaScript 代码,从localStorage中获取token数据。if token_data and len(token_data.strip()) > 0:: 检查token是否存在且不为空。browser.close(): 关闭浏览器。
3. 运行脚本
保存文件后,在终端或命令行中运行脚本:
python check_login_status.py
如果一切正常,脚本将打开浏览器,访问指定的登录页面,等待页面加载完成后,从 localStorage 中获取 token 数据,并检查登录状态。
4. 扩展功能
4.1 处理登录表单
如果需要在登录页面自动填写表单并提交,可以使用 Playwright 的 fill 和 click 方法。例如:
# 填写用户名和密码
page.fill("#username", "your_username") # 替换为用户名输入框的选择器
page.fill("#password", "your_password") # 替换为密码输入框的选择器
# 点击登录按钮
page.click("#login-button") # 替换为登录按钮的选择器
4.2 处理验证码
如果登录页面有验证码,可以手动输入验证码,或者使用第三方服务自动识别验证码。
4.3 保存登录状态
如果需要保存登录状态以便后续使用,可以将 localStorage 中的数据保存到文件,或者使用 Playwright 的 storage_state 功能:
# 保存登录状态到文件
storage_state = page.context.storage_state(path="state.json")
5. 总结
通过本教程,你已经学会了如何使用 Playwright 检查登录状态并获取 localStorage 中的 token。Playwright 提供了强大的功能,可以用于自动化测试、爬虫、监控等场景。你可以根据需要扩展脚本功能,例如自动填写登录表单、处理验证码、保存登录状态等。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)