41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
# vi:si:et:sw=4:sts=4:ts=4
|
|
import sys, thread
|
|
import gtk
|
|
import webkit
|
|
|
|
|
|
class WebView(webkit.WebView):
|
|
def get_html(self):
|
|
self.execute_script('oldtitle=document.title;document.title=document.documentElement.innerHTML;')
|
|
html = self.get_main_frame().get_title()
|
|
self.execute_script('document.title=oldtitle;')
|
|
return html
|
|
|
|
class Browser(gtk.Window):
|
|
def __init__(self):
|
|
gtk.gdk.threads_init()
|
|
gtk.Window.__init__(self)
|
|
self.view = WebView()
|
|
self.view.connect('load-finished', self._finished_loading)
|
|
self.add(self.view)
|
|
|
|
def open(self, url, cb=None):
|
|
self.view.open(url)
|
|
self.cb = cb
|
|
|
|
def crawl(self):
|
|
view = WebView()
|
|
view.open(self._url)
|
|
view.connect('load-finished', self._finished_loading)
|
|
gtk.main()
|
|
|
|
def _finished_loading(self, view, frame):
|
|
if self.cb:
|
|
self.cb(self, view, frame)
|
|
|
|
def quit(self):
|
|
gtk.main_quit()
|
|
|