python webkit webview还记得cookie吗?

发布于 2021-01-29 18:03:30

我写了一个简短的python脚本,可以在网络视图窗口中打开Goog​​le音乐。但是我似乎找不到任何有关使Webkit使用cookie的信息,这样我就不必在每次启动时都登录。

这是我所拥有的:

#!/usr/bin/env python
import gtk, webkit
import ctypes

libgobject = ctypes.CDLL('/usr/lib/i386-linux-gnu/libgobject-2.0.so.0')
libwebkit = ctypes.CDLL('/usr/lib/libsoup-2.4.so.1')
libsoup = ctypes.CDLL('/usr/lib/libsoup-2.4.so.1')
libwebkit = ctypes.CDLL('/usr/lib/libwebkitgtk-1.0.so.0')

proxy_uri = libsoup.soup_uri_new('http://tcdproxy.tcd.ie:8080') #proxy urli

session = libwebkit.webkit_get_default_session()
libgobject.g_object_set(session, "proxy-uri", proxy_uri, None)

w = gtk.Window()
w.connect("destroy",w.destroy)
w.set_size_request(1000,600)
w.connect('delete-event', lambda w, event: gtk.main_quit())
s = gtk.ScrolledWindow()
v = webkit.WebView()
s.add(v)
w.add(s)
w.show_all()

v.open('http://music.google.com')
gtk.main()

在此方面的任何帮助将不胜感激,谢谢,

理查德

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    解决了这个问题,但是它需要学习比我想要的更多的ctypes -_-。尝试一下-我需要的库路径与您不同,等等,所以我只粘贴相关内容。

    #remove all cookiejars
    generic_cookiejar_type = libgobject.g_type_from_name('SoupCookieJar')
    libsoup.soup_session_remove_feature_by_type(session, generic_cookiejar_type)
    
    #and replace with a new persistent jar
    cookiejar = libsoup.soup_cookie_jar_text_new('/path/to/your/cookies.txt',False)
    libsoup.soup_session_add_feature(session, cookiejar)
    

    该代码很容易说明。还有一个SoupCookieJarSqlite,你可能会喜欢,但我敢肯定,文本文件将是开发更容易。

    编辑:实际上,删除cookie罐似乎没有做任何事情,因此适当的代码段是

    #add a new persistent cookie jar
    cookiejar = libsoup.soup_cookie_jar_text_new('/path/to/your/cookies.txt',False)
    libsoup.soup_session_add_feature(session, cookiejar)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看