diff options
| author | Bnyro <bnyro@tutanota.com> | 2026-07-08 20:53:08 +0200 |
|---|---|---|
| committer | Bnyro <bnyro@tutanota.com> | 2026-07-08 21:01:11 +0200 |
| commit | 3b573e0f89bd4d0154603c3cb7b8d795c03f7f93 (patch) | |
| tree | dab3d9d22b624090ee9ca0bf994a19d1e7a890aa /searx | |
| parent | da6a230413a41e7b751414684d06c219d775d7b5 (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.
Diffstat (limited to 'searx')
| -rw-r--r-- | searx/engines/heexy.py | 9 |
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"): |
