summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--searx/engines/xpath.py18
-rw-r--r--searx/settings.yml36
2 files changed, 37 insertions, 17 deletions
diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py
index 50f98d935..a5f30d86d 100644
--- a/searx/engines/xpath.py
+++ b/searx/engines/xpath.py
@@ -7,6 +7,7 @@ search_url = None
url_xpath = None
content_xpath = None
title_xpath = None
+thumbnail_xpath = False
paging = False
suggestion_xpath = ''
results_xpath = ''
@@ -40,7 +41,9 @@ def extract_text(xpath_results):
return ''.join(xpath_results)
else:
# it's a element
- text = html.tostring(xpath_results, encoding='unicode', method='text', with_tail=False)
+ text = html.tostring(
+ xpath_results, encoding='unicode', method='text', with_tail=False
+ )
text = text.strip().replace('\n', ' ')
return ' '.join(text.split())
@@ -105,7 +108,18 @@ def response(resp):
url = extract_url(result.xpath(url_xpath), search_url)
title = extract_text(result.xpath(title_xpath))
content = extract_text(result.xpath(content_xpath))
- results.append({'url': url, 'title': title, 'content': content})
+ tmp_result = {'url': url, 'title': title, 'content': content}
+
+ # add thumbnail if available
+ thumbnail = None
+ if thumbnail_xpath:
+ thumbnail = extract_url(
+ result.xpath(thumbnail_xpath), search_url
+ )
+ if thumbnail:
+ tmp_result['img_src'] = thumbnail
+
+ results.append(tmp_result)
else:
for url, title, content in zip(
(extract_url(x, search_url) for
diff --git a/searx/settings.yml b/searx/settings.yml
index 10a049872..53dfaae2c 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -311,31 +311,37 @@ engines:
shortcut : gos
- name : google play apps
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=apps
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]
- content_xpath : //a[@class="subtitle"]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=apps
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]/img/@data-src'
categories : files
shortcut : gpa
disabled : True
- name : google play movies
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=movies
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]/@title
- content_xpath : //a[contains(@class, "subtitle")]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=movies
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]/img/@data-src'
categories : videos
shortcut : gpm
disabled : True
- name : google play music
- engine : xpath
- search_url : https://play.google.com/store/search?q={query}&c=music
- url_xpath : //a[@class="title"]/@href
- title_xpath : //a[@class="title"]
- content_xpath : //a[@class="subtitle"]
+ engine : xpath
+ search_url : https://play.google.com/store/search?q={query}&c=music
+ results_xpath : '//div[@class="WHE7ib mpg5gc"]'
+ title_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a'
+ url_xpath : './/div[@class="RZEgze"]//div[@title and not(@title="")]/a/@href'
+ content_xpath : './/div[@class="RZEgze"]//a[@class="mnKHRc"]'
+ thumbnail_xpath : './/div[@class="uzcko"]/div/span[1]/img/@data-src'
categories : music
shortcut : gps
disabled : True