From 1ef5c03962de29085b63d7df457764a180f36967 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Fri, 23 May 2025 14:55:22 +0200 Subject: [PATCH] [fix] ddg engine: IndexError exception is raised on empty contend (#4843) Sometimes (e.g. when ddg does not have a result item) there is no content and the engine will fail with an IndexError: * Error: IndexError * Percentage: 10 * Parameters: `()` * File name: `searx/engines/duckduckgo.py:375` * Function: `response` * Code: `item["content"] = extract_text(eval_xpath(div_result, './/a[contains(@class, "result__snippet")]')[0])` Signed-off-by: Markus Heiser --- searx/engines/duckduckgo.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index d877d596b..06299e6aa 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -372,8 +372,9 @@ def response(resp) -> EngineResults: continue item["title"] = extract_text(title) item["url"] = eval_xpath(div_result, './/h2/a/@href')[0] - item["content"] = extract_text(eval_xpath(div_result, './/a[contains(@class, "result__snippet")]')[0]) - + item["content"] = extract_text( + eval_xpath_getindex(div_result, './/a[contains(@class, "result__snippet")]', 0, []) + ) results.append(item) zero_click_info_xpath = '//div[@id="zero_click_abstract"]'