1

我目前正在使用Python Webkit DOM 绑定以编程方式与网站交互,这对我有用。

唯一的问题是它坚持要打开一个 GTK 窗口来显示页面。有人想出办法阻止它打开窗户吗?即以无头方式使用它?

我正在像这样初始化视图:

    wv = pywebkitgtk.WebView(1024, 768, url=url)

它隐式打开 GTK 窗口,然后我有一个 onload 事件处理程序来操作 DOM。

我首先想到子类化 WebView,但这是不可能的,因为它是一个编译类。

还有其他想法吗?

4

5 回答 5

2

我是负责 pythonwebkit 的开发人员,并且我在跨多个平台的这些领域拥有丰富的专业知识。实际上,您真的非常想要一个完全“无头”的 WebKit 端口。在 pythonwebkit 中,这实际上不应该太难做,因为只有三个“入口点”函数(一个用于窗口,一个用于文档,一个用于 XMLHTTPRequest)。

真的,有人应该做一个适当的“完全无头”的 WebKit 端口。在 WebKit 的源代码树中已经有一个非常接近的示例程序,也许这会让你开始。

于 2014-03-07T19:36:17.587 回答
1

您可以尝试使用 Xvfb。我喜欢使用命令行并手动设置我的显示,但如果你不喜欢你可以使用这个:http ://cgoldberg.github.io/xvfbwrapper/

于 2013-04-12T19:47:50.013 回答
1

我一直在使用 PyQT。PyQTWebView 在 Webkit 上运行并且效果很好。查看Ghost.py以开始使用,或直接使用 PyQT 的 API。完全无头运行,并支持相当新的 Webkit 构建。

于 2013-01-07T19:55:20.877 回答
0

你能得到 GTK 窗口的句柄然后调用window.hide()吗?否则,您可能只需要使用完整的 Webkit 库。

于 2013-01-07T19:40:47.473 回答
0

创建一个窗口并在那里添加webview,并且从不显示窗口..

我有 webviews 运行而不显示它们,如果我需要显示它们可以调用 show_all。

web_view = pywebkitgtk.WebView()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
sw = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
sw.add(web_view)
window.add(sw)

#window.show_all()
于 2013-01-11T10:43:22.407 回答