Si vous regardez l'état actuel des liaisons sur GitHub, vous verrez PyWebKitGTK doesn't yet provide tout à fait ce que vous veux- il n'y a pas le mappage pour le type HTTPResponse
il ressemble. Malheureusement, je pense que Javascript ou un proxy sont vos seules options en ce moment.
EDIT:
... à moins, bien sûr, vous voulez réel mauvais et restez dans les ctypes d'apprentissage de nuit. Dans ce cas, vous pouvez faire de la magie. Pour effacer tous les cookies du navigateur, essayez ceci.
import gtk, webkit, ctypes
libwebkit = ctypes.CDLL('libwebkit-1.0.so')
libgobject = ctypes.CDLL('libgobject-2.0.so')
libsoup = ctypes.CDLL('libsoup-2.4.so')
v = webkit.WebView()
#do whatever it is you do with WebView...
....
#get the cookiejar from the default session
#(assumes one session and one cookiesjar)
generic_cookiejar_type = libgobject.g_type_from_name('SoupCookieJar')
cookiejar = libsoup.soup_session_get_feature(session, generic_cookiejar_type)
#build a callback to delete cookies
DEL_COOKIE_FUNC = ctypes.CFUNCTYPE(None, ctypes.c_void_p)
def del_cookie(cookie):
libsoup.soup_cookie_jar_delete_cookie(cookiejar, cookie)
#run the callback on all the cookies
cookie_list = libsoup.soup_cookie_jar_all_cookies(cookiejar)
libsoup.g_slist_foreach(cookie_list, DEL_COOKIE_FUNC(del_cookie), None)
EDIT:
Au début du besoin moi-même, et alors qu'il est la bonne idée qu'il faut travailler. Au lieu de cela, essayez ceci: le type de fonction et l'accès cookiejar sont corrigés.
#add a new cookie jar
cookiejar = libsoup.soup_cookie_jar_new()
#uncomment the below line for a persistent jar instead
#cookiejar = libsoup.soup_cookie_jar_text_new('/path/to/your/cookies.txt',False)
libsoup.soup_session_add_feature(session, cookiejar)
#build a callback to delete cookies
DEL_COOKIE_FUNC = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p)
def del_cookie(cookie, userdata):
libsoup.soup_cookie_jar_delete_cookie(cookiejar, cookie)
return 0
#run the callback on all the cookies
cookie_list = libsoup.soup_cookie_jar_all_cookies(cookiejar)
libsoup.g_slist_foreach(cookie_list, DEL_COOKIE_FUNC(del_cookie), None)
Notez que vous ne devez faire avant à l'aide du WebView, ou peut-être dans callbacks WebKit, ou vous aurez des problèmes de filetage ci-dessus et au-delà de ceux qui sont habituellement associés à la programmation GTK.
Quelle API WebKit Python utilisez-vous? – llasram
Hmmm - voulez-vous dire la partie du bon vieux webware qui est (ou était) connu sous le nom de webkit, côté serveur; ou, la boîte à outils de construction/rendu de navigateur très populaire qui sous-tend e.g. Safari et Chrome et est interfacé avec Python (côté client) via Qt, Gtk, wx, ...? Cela fait une énorme différence, bien sûr (par exemple, si côté serveur, pourquoi gardez-vous les cookies en premier lieu et comment? Pas surprenant que les cookies sont seulement dans les requêtes Http et les réponses du point de vue d'un serveur ...!), Y compris , si côté client, quelle trousse d'interface graphique utilisez-vous avec elle - alors s'il vous plaît clarifier! –
Question sur PyWebKitGtk (http://live.gnome.org/PyWebKitGtk), désolé à ce sujet :) – BPS