从 python WebKit.WebView 中删除 cookie
Delete cookies from python WebKit.WebView
我有一个带有嵌入式 WebKit.WebView
的 PyGtk
应用程序。用户通过嵌入式浏览器登录我们的服务,他们可以在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"
我有一个带有嵌入式 WebKit.WebView
的 PyGtk
应用程序。用户通过嵌入式浏览器登录我们的服务,他们可以在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"