summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoémi Ványi <sitbackandwait@gmail.com>2021-03-27 16:50:03 +0100
committerNoémi Ványi <sitbackandwait@gmail.com>2021-03-27 16:54:01 +0100
commitf596f5767bed915a5c3bed59ae26283e53f975ca (patch)
tree28b2ec051b841ed2fe13d9447f1dad0b0d364f66
parent28286cf3f2308113bf440fb6e7cf326c6ed07889 (diff)
downloadsearxng-f596f5767bed915a5c3bed59ae26283e53f975ca.tar.gz
searxng-f596f5767bed915a5c3bed59ae26283e53f975ca.zip
fix Semantic Scholar engine
-rw-r--r--searx/engines/semantic_scholar.py43
-rw-r--r--searx/settings.yml11
2 files changed, 46 insertions, 8 deletions
diff --git a/searx/engines/semantic_scholar.py b/searx/engines/semantic_scholar.py
new file mode 100644
index 000000000..a49f84b67
--- /dev/null
+++ b/searx/engines/semantic_scholar.py
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: AGPL-3.0-or-later
+"""
+ Semantic Scholar (Science)
+"""
+
+from json import dumps, loads
+
+
+search_url = 'https://www.semanticscholar.org/api/1/search'
+
+
+def request(query, params):
+ params['url'] = search_url
+ params['method'] = 'POST'
+ params['headers']['content-type'] = 'application/json'
+ params['data'] = dumps({
+ "queryString": query,
+ "page": params['pageno'],
+ "pageSize": 10,
+ "sort": "relevance",
+ "useFallbackRankerService": False,
+ "useFallbackSearchCluster": False,
+ "performTitleMatch": True,
+ "getQuerySuggestions": False,
+ "authors": [],
+ "coAuthors": [],
+ "venues": [],
+ "performTitleMatch": True,
+ })
+ return params
+
+
+def response(resp):
+ res = loads(resp.text)
+ results = []
+ for result in res['results']:
+ results.append({
+ 'url': result['primaryPaperLink']['url'],
+ 'title': result['title']['text'],
+ 'content': result['paperAbstractTruncated']
+ })
+
+ return results
diff --git a/searx/settings.yml b/searx/settings.yml
index 1958210d7..84aca86f1 100644
--- a/searx/settings.yml
+++ b/searx/settings.yml
@@ -918,13 +918,8 @@ engines:
# disabled : True
- name : semantic scholar
- engine : xpath
- paging : True
- search_url : https://www.semanticscholar.org/search?q={query}&sort=relevance&page={pageno}&ae=false
- results_xpath : //article
- url_xpath : .//div[@class="search-result-title"]/a/@href
- title_xpath : .//div[@class="search-result-title"]/a
- content_xpath : .//div[@class="search-result-abstract"]
+ engine : semantic_scholar
+ disabled : True
shortcut : se
categories : science
about:
@@ -933,7 +928,7 @@ engines:
official_api_documentation: https://api.semanticscholar.org/
use_official_api: false
require_api_key: false
- results: HTML
+ results: JSON
# Spotify needs API credentials
# - name : spotify