def _get(self, url, parent_window, decode=True):
# initialize the progress dialog once for the following search process
if not self.progress:
self.progress = Progress(parent_window)
data = None
url = url.encode('utf-8', 'replace')
log.debug('Using url <%s>', url)
self.progress.set_data(parent_window, _('Searching'), _('Wait a moment'), True)
try:
retriever = Retriever(url, parent_window, self.progress)
retriever.start()
while retriever.isAlive():
self.progress.pulse()
if self.progress.status:
retriever.join()
while gtk.events_pending():
gtk.main_iteration()
try:
if retriever.html:
ifile = file(retriever.html[0], 'rb')
try:
data = ifile.read()
finally:
ifile.close()
# check for gzip compressed pages before decoding to unicode
if len(data) > 2 and data[0:2] == '\037\213':
data = gutils.decompress(data)
if decode:
data = data.decode('utf-8', 'replace')
os.remove(retriever.html[0])
except IOError:
log.exception('')
finally:
self.progress.hide()
urlcleanup()
return data
评论列表
文章目录