在Python中从打开的登录表单保存web会话

2024-10-04 01:36:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个小应用程序编写一个Python脚本,该应用程序需要进行web清理。我想要的内容在登录屏幕后面,但由于网页的性质(以及我的用例),我更愿意向用户展示实际的登录屏幕,而不是发布Python脚本中保存的变量

有没有一种方法可以让用户在窗口中看到网站的正式登录页面,并捕获会话以在我的程序中使用(带有请求、Eel、Electron或类似内容)

POSTLOGINURL = 'www.example.com/login'
REQUESTURL = 'www.example.com/page_to_scrape'

    payload = {'username': 'myusername', 'password': 'mypassword'}

    with requests.Session() as session:
        post = session.post(POSTLOGINURL, data=payload)
        t = print(session)
        r = session.get(REQUESTURL)
        print(r.text)

REQUESTURL页面(似乎已登录)打印为“标识我的数字身份”页面,通常会在浏览器中使用JavaScript重定向到请求的页面。使用上述工具或类似工具是否有解决方法(验证只进行一次)


Tags: 方法用户脚本com应用程序内容屏幕example
1条回答
网友
1楼 · 发布于 2024-10-04 01:36:50

登录会话可能存储在cookie中。 因此,您可以保存cookie信息

with requests.Session() as session:
        post = session.post(POSTLOGINURL, data=payload)
        t = print(session)
        r = session.get(REQUESTURL)
        cookie = session.cookie
        with open('somefile', 'wb') as f:
            pickle.dump(cookie, f)

然后下次将文件加载到会话中

session = requests.session()
with open('somefile', 'rb') as f:
    session.cookies.update(pickle.load(f))

相关问题 更多 >