diff --git a/oxweb/google.py b/oxweb/google.py index 1f0e065..1109d05 100644 --- a/oxweb/google.py +++ b/oxweb/google.py @@ -1,13 +1,15 @@ -# -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 -import re -import time -import urllib -import urllib2 -import weakref -import threading -import Queue - +import re +import time +import urllib +import urllib2 +import weakref +import threading +import Queue +import simplejson + + import oxlib from oxlib import stripTags @@ -25,26 +27,31 @@ google.find(query, max_results) FIXME: how search depper than first page? ''' -DEFAULT_MAX_RESULTS = 10 +DEFAULT_MAX_RESULTS = 10 def getUrl(url, data=None, headers=oxlib.net.DEFAULT_HEADERS): google_timeout=24*60*60 return oxlib.cache.getUrl(url, data, headers, google_timeout) -def quote_plus(s): - return urllib.quote_plus(s.encode('utf-8')) +def quote_plus(s): + return urllib.quote_plus(s.encode('utf-8')) def find(query, max_results=DEFAULT_MAX_RESULTS): url = "http://www.google.com/search?q=%s" % quote_plus(query) data = getUrl(url) - link_re = r'(?P.*?)' + \ - r'.*?(?:
|)' + \ - r'(?P.*?)' + '(?:|(?P.*?)' + \ + r'.*?(?:
|)' + \ + r'(?P.*?)' + '(?:| max_results: - results = results[:max_results] + results = results[:max_results] + return results + +def _find(query): + url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s' % quote_plus(query) + results = simplejson.loads(getUrlUnicode(url))['responseData']['results'] return results