python playwright 保存登录状态例程:

from playwright.sync_api import sync_playwright
import os

# 存储状态的路径
STATE_PATH = "auth_state.json"

def login_and_save_state():
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        context = browser.new_context()
        page = context.new_page()
        
        # 访问登录页面并进行登录操作(替换为你的实际登录流程)
        page.goto("https://www.example.com/")

        input("在浏览器中完成登录操作后,按Enter键继续...")
        
        # 保存认证状态到文件
        context.storage_state(path=STATE_PATH)
        print(f"认证状态已保存到 {STATE_PATH}")
                
        browser.close()

def use_saved_state():
    if not os.path.exists(STATE_PATH):
        print("没有找到保存的状态文件,请先运行登录函数")
        return
        
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        
        # 使用保存的状态创建新上下文
        context = browser.new_context(storage_state=STATE_PATH)
        page = context.new_page()
        
        # 访问需要认证的页面验证状态是否有效
        page.goto("https://www.example.com/")
        
        # 验证是否已登录(根据实际情况调整)
        #assert "Dashboard" in page.title()
        
        print("成功使用保存的登录状态访问受保护页面")
        
        # 保持浏览器打开以便查看
        input("按Enter键关闭浏览器...")
        
        browser.close()

if __name__ == "__main__":
    # 第一次运行时执行登录并保存状态
    # login_and_save_state()
    
    # 后续运行可以使用保存的状态
    use_saved_state()

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐