summaryrefslogtreecommitdiff
path: root/searx/engines/google_images.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/engines/google_images.py')
-rw-r--r--searx/engines/google_images.py46
1 files changed, 24 insertions, 22 deletions
diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py
index a380170ca..636913114 100644
--- a/searx/engines/google_images.py
+++ b/searx/engines/google_images.py
@@ -15,7 +15,6 @@ from json import loads
from lxml import html
from searx.url_utils import urlencode
-
# engine dependent config
categories = ['images']
paging = True
@@ -25,8 +24,6 @@ number_of_results = 100
search_url = 'https://www.google.com/search'\
'?{query}'\
- '&asearch=ichunk'\
- '&async=_id:rg_s,_pms:s'\
'&tbm=isch'\
'&yv=2'\
'&{search_options}'
@@ -66,30 +63,35 @@ def request(query, params):
def response(resp):
results = []
- g_result = loads(resp.text)
-
- dom = html.fromstring(g_result[1][1])
+ dom = html.fromstring(resp.text)
# parse results
- for result in dom.xpath('//div[@data-ved]'):
+ for result in dom.xpath('//div[contains(@class, "rg_meta")]/text()'):
try:
- metadata = loads(''.join(result.xpath('./div[contains(@class, "rg_meta")]/text()')))
+ metadata = loads(result)
+
+ img_format = metadata.get('ity', '')
+ img_width = metadata.get('ow', '')
+ img_height = metadata.get('oh', '')
+ if img_width and img_height:
+ img_format += " {0}x{1}".format(img_width, img_height)
+
+ source = metadata.get('st', '')
+ source_url = metadata.get('isu', '')
+ if source_url:
+ source += " ({0})".format(source_url)
+
+ results.append({'url': metadata['ru'],
+ 'title': metadata['pt'],
+ 'content': metadata.get('s', ''),
+ 'source': source,
+ 'img_format': img_format,
+ 'thumbnail_src': metadata['tu'],
+ 'img_src': metadata['ou'],
+ 'template': 'images.html'})
+
except:
continue
- thumbnail_src = metadata['tu']
-
- # http to https
- thumbnail_src = thumbnail_src.replace("http://", "https://")
-
- # append result
- results.append({'url': metadata['ru'],
- 'title': metadata['pt'],
- 'content': metadata['s'],
- 'thumbnail_src': thumbnail_src,
- 'img_src': metadata['ou'],
- 'template': 'images.html'})
-
- # return results
return results