从 python WebKit.WebView 中删除 cookie

Delete cookies from python WebKit.WebView

我有一个带有嵌入式 WebKit.WebViewPyGtk 应用程序。用户通过嵌入式浏览器登录我们的服务,他们可以在PayPal页面进行支付。

此应用程序由同一会话中的不同用户使用,因此问题在于 PayPal 会烘烤 cookie 并记住上次付款的电子邮件。

我只想完成付款并从我的 WebView 中删除与 PayPal 相关的 cookie,但我找不到任何关于删除 cookie 的文档。

重新创建 webView 不是一个选项,因为我的网页加载量很大。

任何帮助将不胜感激

我自己想出来的

首先,我添加了一个自定义 cookiejar。这让我可以处理 cookies

from gi.repository import Soup

cookiejar = Soup.CookieJarText.new("cookies/biscottini.txt", False)
cookiejar.set_accept_policy(Soup.CookieJarAcceptPolicy.ALWAYS)

session = gi.repository.WebKit.get_default_session()
session.add_feature(cookiejar)

然后我找到了 Soup class 结构并写下了这个简单的片段来清除 cookie(还有一个过滤器只删除 PayPal cookie)

def clearCookies(deleteAll=False):       

    for cookie in cookiejar.all_cookies():
        if deleteAll or ('paypal' in cookie.get_domain().lower()):            
            cookiejar.delete_cookie(cookie)

不过我现在遇到了一个问题:如果我尝试付款,在清除 PayPal 的 cookie 后,我收到错误消息:"Message Corrupt"