Если вы посмотрите на текущее состояние привязок на GitHub , вы увидите, что PyWebKitGTK пока не предоставляет совсем то, что вам нужно - нет сопоставления для HTTPResponse
Тип это выглядит так.К сожалению, я думаю, что Javascript или прокси-сервер - это ваши единственные варианты прямо сейчас.
РЕДАКТИРОВАТЬ:
... если, конечно, вы не хотите, чтобы real плохо и оставалисьдо ночи, изучая типы.В этом случае вы можете сделать магию.Чтобы очистить все куки-файлы браузера, попробуйте это.
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)
РЕДАКТИРОВАТЬ:
Просто начал нуждаться в этом сам, и хотя это правильная идея, он нуждался в работе.Вместо этого попробуйте это - тип функции и доступ к cookiejar фиксированы.
#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)
Обратите внимание, что вы должны делать это только за до , используя WebView, или, возможно, в обратных вызовах WebKit, или выесть проблемы с многопоточностью сверх тех, которые обычно связаны с программированием GTK.