summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2026-07-08 20:53:08 +0200
committerBnyro <bnyro@tutanota.com>2026-07-08 21:01:11 +0200
commit3b573e0f89bd4d0154603c3cb7b8d795c03f7f93 (patch)
treedab3d9d22b624090ee9ca0bf994a19d1e7a890aa
parentda6a230413a41e7b751414684d06c219d775d7b5 (diff)
[fix] heexy: use cookies for cacheft token
Heexy now passes the cacheft token via cookies and no longer via HTTP headers. Hence, the engine is broken without that change.
-rw-r--r--searx/engines/heexy.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/searx/engines/heexy.py b/searx/engines/heexy.py
index f566a7953..1eadfb477 100644
--- a/searx/engines/heexy.py
+++ b/searx/engines/heexy.py
@@ -13,13 +13,12 @@ It seems to use Bing internally, as the image thumbnails are loaded from Bing.
from urllib.parse import urlencode
import typing as t
-from lxml import html
from searx.enginelib import EngineCache
from searx.network import get
from searx.exceptions import SearxEngineAPIException, SearxEngineAccessDeniedException
from searx.result_types import EngineResults
-from searx.utils import eval_xpath, extract_text, gen_useragent
+from searx.utils import gen_useragent
if t.TYPE_CHECKING:
from searx.extended_types import SXNG_Response
@@ -73,8 +72,7 @@ def _get_api_token(query: str) -> str:
if not resp.ok:
raise SearxEngineAPIException("failed to obtain request token: invalid response code")
- doc = html.fromstring(resp.text)
- token = extract_text(eval_xpath(doc, "//html/@data-cacheft"))
+ token = resp.cookies["cacheft"]
if not token:
raise SearxEngineAPIException("failed to obtain request token: no token found")
@@ -92,8 +90,9 @@ def request(query: str, params: "OnlineParams") -> None:
args["lang"] = params["searxng_locale"].split("-")[0]
params["url"] = f"{api_url}/search/{heexy_categ}?{urlencode(args)}"
- params["headers"]["X-Data-Cacheft"] = _get_api_token(query)
+
params["headers"]["Origin"] = api_url
+ params["cookies"]["cacheft"] = _get_api_token(query)
def response(resp: "SXNG_Response"):