【问题标题】:Delete cookies from python WebKit.WebView从 python WebKit.WebView 中删除 cookie
【发布时间】:2016-08-29 07:28:48
【问题描述】:
我有一个带有嵌入式WebKit.WebView 的PyGtk 应用程序。用户通过嵌入式浏览器登录我们的服务,他们可以在PayPal页面进行支付。
此应用由不同用户在同一会话中使用,因此问题在于 PayPal 烘焙 cookie 并记住上次付款的电子邮件。
我只想完成付款并从我的WebView 中删除与 PayPal 相关的 cookie,但我找不到任何有关删除 cookie 的文档。
重新创建webView 不是一个选项,因为我的网页加载很重。
任何帮助将不胜感激
【问题讨论】:
标签:
cookies
paypal
webview
webkit
pygtk
【解决方案1】:
我自己想出来的。
首先我添加了一个自定义 cookiejar。这让我可以处理 cookie
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类结构并写下这个简单的sn-p来清除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 后,我会收到错误:“消息损坏”