[英]Cannot get cookies after closing window in PyWebView
调用webview.start
后,关闭 window,并调用window.get_cookies
function,出现此错误: KeyError: 'master'
追溯:
Traceback (most recent call last):
File "D:\better_gui.py", line 34, in <module>
)
File "D:\venv-python\Lib\site-packages\webview\window.py", line 36, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\venv-python\Lib\site-packages\webview\window.py", line 237, in get_cookies
return self.gui.get_cookies(self.uid)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\venv-python\Lib\site-packages\webview\platforms\winforms.py", line 646, in get_cookies
window = BrowserView.instances[uid]
~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: 'master'
我正在使用 Python 3.11
我的代码:
import webview
import sys
import urllib.request
window = webview.create_window(
sys.argv[2],
sys.argv[1],
width=1280,
height=720,
min_size=(1280, 720)
)
webview.start(
private_mode=False,
storage_path='.\\gui'
)
cookies = window.get_cookies()
url = f'{sys.argv[1]}/close?cookie={cookies}'
urllib.request.urlopen(url)
我还尝试添加事件处理程序window.events.closing += on_closing
和 function 设置如下:
import webview
import sys
import urllib.request
def on_closing() -> None:
cookies = window.get_cookies()
url = f'{sys.argv[1]}/close?cookie={cookies}'
urllib.request.urlopen(url)
window = webview.create_window(
sys.argv[2],
sys.argv[1],
width=1280,
height=720,
min_size=(1280, 720)
)
window.events.closing += on_closing
webview.start(
private_mode=False,
storage_path='.\\gui'
)
但是window崩溃了,Windows无法终止进程。
在下面的示例中使用 cookiejar 怎么样:
import requests
import http.cookiejar
import urllib
def on_closing() -> None:
url = f'{sys.argv[1]}/close?cookie={cookies}'
urllib.request.urlopen(url)
cookies = http.cookiejar.CookieJar()
url_opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookies))
url_opener.open(url)
for cookie in cookies:
print(cookie.name, cookie.value)
window = webview.create_window(
sys.argv[2],
sys.argv[1],
width=1280,
height=720,
min_size=(1280, 720)
)
window.events.closing += on_closing
webview.start(
private_mode=False,
storage_path='.\\gui'
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.