这是Python Webkit Gtk中的一个简单浏览器:
#!/usr/bin/python
import gtk
import webkit
view = webkit.WebView()
sw = gtk.ScrolledWindow()
sw.add(view)
win = gtk.Window(gtk.WINDOW_TOPLEVEL)
win.add(sw)
win.show_all()
view.open("https://www.kernel.org/")
gtk.main()
浏览效果很好。不幸的是,它无法在本地计算机上保存文件。我找不到一个现成的解决方案。我不需要进度条,文件夹选择,我想点击链接导致下载。您知道将文件保存到目录/ home / user的最简单方法吗?
答案 0 :(得分:2)
正如docs中所述,您必须连接到mime-type-policy-decision-requested
和download-requested
信号。
view.connect('download-requested', download_requested)
view.connect('mime-type-policy-decision-requested', policy_decision_requested)
然后检查mime-type并决定是否要下载它:
def policy_decision_requested(view, frame, request, mimetype, policy_decision):
if mimetype != 'text/html':
policy_decision.download()
return True
之后发出download-requested
时,您可以让WebKit.Download
对象处理下载或(在本例中)使用python执行此操作:
def download_requested(view, download):
name = download.get_suggested_filename()
path = os.path.join(
GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DOWNLOAD),
name
)
urlretrieve(download.get_uri(), path) # urllib.request.urlretrieve
return False