From dac63f77643bacf982e11d66bfb1b4bb724d8d86 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Tue, 10 Oct 2023 09:04:00 +0200 Subject: [PATCH] [fix] ddg-lite vqd value: some search terms do not have a vqd value Some search terms do not have results and therefore no vqd value BTW: remove a leftover from 9197efa Signed-off-by: Markus Heiser --- searx/engines/duckduckgo.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index e421b9cfd..3ce629eec 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -98,7 +98,12 @@ def get_vqd(query): query_url = 'https://lite.duckduckgo.com/lite/?{args}'.format(args=urlencode({'q': query})) res = get(query_url) doc = lxml.html.fromstring(res.text) - value = doc.xpath("//input[@name='vqd']/@value")[0] + value = doc.xpath("//input[@name='vqd']/@value") + if value: + value = value[0] + else: + # some search terms do not have results and therefore no vqd value + value = '' logger.debug("new vqd value: %s", value) cache_vqd(query, value) return value @@ -236,9 +241,6 @@ def request(query, params): params['data']['s'] = offset params['data']['dc'] = offset + 1 - # request needs a vqd argument - params['data']['vqd'] = get_vqd(query) - # initial page does not have additional data in the input form if params['pageno'] > 1: