on master help sign in
[fix] update startpage engine - closes #1601
77a70feAdam Tauber
searx/engines/startpage.py+19−8
@@ -15,6 +15,7 @@ from dateutil import parser
15from datetime import datetime, timedelta
15from datetime import datetime, timedelta
16import re
16import re
17from searx.engines.xpath import extract_text
17from searx.engines.xpath import extract_text
18+from searx.languages import language_codes
18
19
19# engine dependent config
20# engine dependent config
20categories = ['general']
21categories = ['general']
@@ -22,7 +23,7 @@ categories = ['general']
22# (probably the parameter qid), require
23# (probably the parameter qid), require
23# storing of qid's between mulitble search-calls
24# storing of qid's between mulitble search-calls
24
25
25−# paging = False
26+paging = True
26language_support = True
27language_support = True
27
28
28# search-url
29# search-url
@@ -32,23 +33,33 @@ search_url = base_url + 'do/search'
32# specific xpath variables
33# specific xpath variables
33# ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
34# ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
34# not ads: div[@class="result"] are the direct childs of div[@id="results"]
35# not ads: div[@class="result"] are the direct childs of div[@id="results"]
35−results_xpath = '//li[contains(@class, "search-result") and contains(@class, "search-item")]'
36+results_xpath = '//div[@class="w-gl__result"]'
36−link_xpath = './/h3/a'
37+link_xpath = './/a[@class="w-gl__result-title"]'
37−content_xpath = './p[@class="search-item__body"]'
38+content_xpath = './/p[@class="w-gl__description"]'
38
39
39
40
40# do search-request
41# do search-request
41def request(query, params):
42def request(query, params):
42− offset = (params['pageno'] - 1) * 10
43
43
44 params['url'] = search_url
44 params['url'] = search_url
45 params['method'] = 'POST'
45 params['method'] = 'POST'
46− params['data'] = {'query': query,
46+ params['data'] = {
47− 'startat': offset}
47+ 'query': query,
48+ 'page': params['pageno'],
49+ 'cat': 'web',
50+ 'cmd': 'process_search',
51+ 'engine0': 'v1all',
52+ }
53+
48
54
49 # set language if specified
55 # set language if specified
50 if params['language'] != 'all':
56 if params['language'] != 'all':
51− params['data']['with_language'] = ('lang_' + params['language'].split('-')[0])
57+ language = 'english'
58+ for lc, _, _, lang in language_codes:
59+ if lc == params['language']:
60+ language = lang
61+ params['data']['language'] = language
62+ params['data']['lui'] = language
52
63
53 return params
64 return params
54
65