From 3829c253ff86eb169966c6b6e8c4247b774c68cb Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 14 Nov 2023 08:25:06 +0100 Subject: [PATCH] [mod] add option max_page to bing, brave, qwant, startpage & mojeek [1] https://github.com/searxng/searxng/issues/2982#issuecomment-1808975780 Reported-by: @Damaj301damaj-lol [1] Signed-off-by: Markus Heiser --- searx/engines/bing.py | 3 +++ searx/engines/brave.py | 4 ++++ searx/engines/qwant.py | 8 ++++---- searx/engines/startpage.py | 3 +++ searx/settings.yml | 1 + 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/searx/engines/bing.py b/searx/engines/bing.py index ae001ffac..ff15f0b22 100644 --- a/searx/engines/bing.py +++ b/searx/engines/bing.py @@ -59,6 +59,9 @@ about = { # engine dependent config categories = ['general', 'web'] paging = True +max_page = 200 +"""200 pages maximum (``&first=1991``)""" + time_range_support = True safesearch = True """Bing results are always SFW. To get NSFW links from bing some age diff --git a/searx/engines/brave.py b/searx/engines/brave.py index 1794cfc89..080de1b0c 100644 --- a/searx/engines/brave.py +++ b/searx/engines/brave.py @@ -152,6 +152,10 @@ send_accept_language_header = True paging = False """Brave only supports paging in :py:obj:`brave_category` ``search`` (UI category All).""" +max_page = 10 +"""Tested 9 pages maximum (``&offset=8``), to be save max is set to 10. Trying +to do more won't return any result and you will most likely be flagged as a bot. +""" safesearch = True safesearch_map = {2: 'strict', 1: 'moderate', 0: 'off'} # cookie: safesearch=off diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py index 168eb860e..1f8556cf1 100644 --- a/searx/engines/qwant.py +++ b/searx/engines/qwant.py @@ -75,6 +75,10 @@ about = { # engine dependent config categories = [] paging = True +max_page = 5 +"""5 pages maximum (``&p=5``): Trying to do more just results in an improper +redirect""" + qwant_categ = None """One of ``web-lite`` (or ``web``), ``news``, ``images`` or ``videos``""" @@ -112,10 +116,6 @@ def request(query, params): args = {'q': query} params['raise_for_httperror'] = False - # all qwant engines (incl qwant-lite) delivers only 5 pages maximum - if params['pageno'] > 5: - return None - if qwant_categ == 'web-lite': url = web_lite_url + '?' diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py index 92d69867a..15ebc6d0b 100644 --- a/searx/engines/startpage.py +++ b/searx/engines/startpage.py @@ -127,6 +127,9 @@ different to the UI language) and a region filter. # engine dependent config categories = ['general', 'web'] paging = True +max_page = 18 +"""Tested 18 pages maximum (argument ``page``), to be save max is set to 20.""" + time_range_support = True safesearch = True diff --git a/searx/settings.yml b/searx/settings.yml index 727b95345..828828b41 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1871,6 +1871,7 @@ engines: suggestion_xpath: //div[@class="top-info"]/p[@class="top-info spell"]/em/a first_page_num: 0 page_size: 10 + max_page: 100 disabled: true about: website: https://www.mojeek.com/