on master help sign in
fix Semantic Scholar engine
commitf596f5767bed915a5c3bed59ae26283e53f975ca authorNoémi Ványi <sitbackandwait@gmail.com> dateSat 27 Mar 2021, 16:50 (6 years ago) parent28286cf
2 files changed+46−8
searx/engines/semantic_scholar.py+43 searx/settings.yml+3−8
searx/engines/semantic_scholar.pynew file+43
@@ -0,0 +1,43 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+"""
3+ Semantic Scholar (Science)
4+"""
5+
6+from json import dumps, loads
7+
8+
9+search_url = 'https://www.semanticscholar.org/api/1/search'
10+
11+
12+def request(query, params):
13+ params['url'] = search_url
14+ params['method'] = 'POST'
15+ params['headers']['content-type'] = 'application/json'
16+ params['data'] = dumps({
17+ "queryString": query,
18+ "page": params['pageno'],
19+ "pageSize": 10,
20+ "sort": "relevance",
21+ "useFallbackRankerService": False,
22+ "useFallbackSearchCluster": False,
23+ "performTitleMatch": True,
24+ "getQuerySuggestions": False,
25+ "authors": [],
26+ "coAuthors": [],
27+ "venues": [],
28+ "performTitleMatch": True,
29+ })
30+ return params
31+
32+
33+def response(resp):
34+ res = loads(resp.text)
35+ results = []
36+ for result in res['results']:
37+ results.append({
38+ 'url': result['primaryPaperLink']['url'],
39+ 'title': result['title']['text'],
40+ 'content': result['paperAbstractTruncated']
41+ })
42+
43+ return results
searx/settings.yml+3−8
@@ -918,13 +918,8 @@ engines:
918918# disabled : True
919919
920920 - name : semantic scholar
921− engine : xpath
922− paging : True
923− search_url : https://www.semanticscholar.org/search?q={query}&sort=relevance&page={pageno}&ae=false
924− results_xpath : //article
925− url_xpath : .//div[@class="search-result-title"]/a/@href
926− title_xpath : .//div[@class="search-result-title"]/a
927− content_xpath : .//div[@class="search-result-abstract"]
921+ engine : semantic_scholar
922+ disabled : True
928923 shortcut : se
929924 categories : science
930925 about:
@@ -933,7 +928,7 @@ engines:
933928 official_api_documentation: https://api.semanticscholar.org/
934929 use_official_api: false
935930 require_api_key: false
936− results: HTML
931+ results: JSON
937932
938933# Spotify needs API credentials
939934# - name : spotify