@@ -3,6 +3,8 @@
33 Startpage (Web)
44"""
55
6+from urllib.parse import urlencode
7+
68from lxml import html
79from dateutil import parser
810from datetime import datetime, timedelta
@@ -33,7 +35,7 @@ supported_languages_url = 'https://www.startpage.com/do/settings'
3335
3436# search-url
3537base_url = 'https://startpage.com/'
36−search_url = base_url + 'do/search'
38+search_url = base_url + 'sp/search?'
3739
3840# specific xpath variables
3941# ads xpath //div[@id="results"]/div[@id="sponsored"]//div[@class="result"]
@@ -46,14 +48,12 @@ content_xpath = './/p[@class="w-gl__description"]'
4648# do search-request
4749def request(query, params):
4850
49− params['url'] = search_url
50− params['method'] = 'POST'
51− params['data'] = {
51+ args = {
5252 'query': query,
5353 'page': params['pageno'],
5454 'cat': 'web',
55− 'cmd': 'process_search',
56− 'engine0': 'v1all',
55+ # 'abp': "-1",
56+ 'sc': 'Mj4jZy61QETj20',
5757 }
5858
5959 # set language if specified
@@ -61,9 +61,10 @@ def request(query, params):
6161 lang_code = match_language(params['language'], supported_languages, fallback=None)
6262 if lang_code:
6363 language_name = supported_languages[lang_code]['alias']
64− params['data']['language'] = language_name
65− params['data']['lui'] = language_name
64+ args['language'] = language_name
65+ args['lui'] = language_name
6666
67+ params['url'] = search_url + urlencode(args)
6768 return params
6869
6970