mirror of
https://github.com/searxng/searxng.git
synced 2026-07-17 21:41:24 +00:00
[chore] Google (HTML) engine: remove obsolete GSA User-Agents (#6366)
The GSA headers that were introduced in PR #5644 unfortunately no longer work (#6359). The Google engines - google.py - google_videos.py do not work anymore either, but we'll leave it in the code for now: - In google.py, central functions like get_google_info(..) are provided, which are also used by other modules. - We will probably need a Google HTML (and video) engine again very soon. Related: - https://github.com/searxng/searxng/issues/6359 - https://github.com/searxng/searxng/pull/6364 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
1
.github/workflows/data-update.yml
vendored
1
.github/workflows/data-update.yml
vendored
@@ -33,7 +33,6 @@ jobs:
|
|||||||
- update_engine_traits.py
|
- update_engine_traits.py
|
||||||
- update_wikidata_units.py
|
- update_wikidata_units.py
|
||||||
- update_engine_descriptions.py
|
- update_engine_descriptions.py
|
||||||
- update_gsa_useragents.py
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -63,7 +63,7 @@ format: format.python format.shell
|
|||||||
# wrap ./manage script
|
# wrap ./manage script
|
||||||
|
|
||||||
MANAGE += weblate.translations.commit weblate.push.translations
|
MANAGE += weblate.translations.commit weblate.push.translations
|
||||||
MANAGE += data.all data.traits data.useragents data.gsa_useragents data.locales data.currencies
|
MANAGE += data.all data.traits data.useragents data.locales data.currencies
|
||||||
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean
|
MANAGE += docs.html docs.live docs.gh-pages docs.prebuild docs.clean
|
||||||
MANAGE += podman.build
|
MANAGE += podman.build
|
||||||
MANAGE += docker.build docker.buildx
|
MANAGE += docker.build docker.buildx
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ make data.all
|
|||||||
"""
|
"""
|
||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
|
|
||||||
__all__ = ["ahmia_blacklist_loader", "gsa_useragents_loader", "data_dir", "get_cache"]
|
__all__ = ["ahmia_blacklist_loader", "data_dir", "get_cache"]
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import typing as t
|
import typing as t
|
||||||
@@ -63,7 +63,6 @@ lazy_globals = {
|
|||||||
"ENGINE_TRAITS": None,
|
"ENGINE_TRAITS": None,
|
||||||
"LOCALES": None,
|
"LOCALES": None,
|
||||||
"TRACKER_PATTERNS": TrackerPatternsDB(),
|
"TRACKER_PATTERNS": TrackerPatternsDB(),
|
||||||
"GSA_USER_AGENTS": None,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
data_json_files = {
|
data_json_files = {
|
||||||
@@ -106,24 +105,3 @@ def ahmia_blacklist_loader() -> list[str]:
|
|||||||
"""
|
"""
|
||||||
with open(data_dir / 'ahmia_blacklist.txt', encoding='utf-8') as f:
|
with open(data_dir / 'ahmia_blacklist.txt', encoding='utf-8') as f:
|
||||||
return f.read().split()
|
return f.read().split()
|
||||||
|
|
||||||
|
|
||||||
def gsa_useragents_loader() -> list[str]:
|
|
||||||
"""Load data from `gsa_useragents.txt` and return a list of user agents
|
|
||||||
suitable for Google. The user agents are fetched by::
|
|
||||||
|
|
||||||
searxng_extra/update/update_gsa_useragents.py
|
|
||||||
|
|
||||||
This function is used by :py:mod:`searx.engines.google`.
|
|
||||||
|
|
||||||
"""
|
|
||||||
data = lazy_globals["GSA_USER_AGENTS"]
|
|
||||||
if data is not None:
|
|
||||||
return data
|
|
||||||
|
|
||||||
log.debug("init searx.data.%s", "GSA_USER_AGENTS")
|
|
||||||
|
|
||||||
with open(data_dir / 'gsa_useragents.txt', encoding='utf-8') as f:
|
|
||||||
lazy_globals["GSA_USER_AGENTS"] = f.read().splitlines()
|
|
||||||
|
|
||||||
return lazy_globals["GSA_USER_AGENTS"]
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -32,7 +32,6 @@ from searx.utils import (
|
|||||||
eval_xpath_getindex,
|
eval_xpath_getindex,
|
||||||
eval_xpath_list,
|
eval_xpath_list,
|
||||||
extract_text,
|
extract_text,
|
||||||
# gen_gsa_useragent,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if t.TYPE_CHECKING:
|
if t.TYPE_CHECKING:
|
||||||
@@ -268,11 +267,6 @@ def get_google_info(params: "OnlineParams", eng_traits: EngineTraits) -> dict[st
|
|||||||
# HTTP headers
|
# HTTP headers
|
||||||
|
|
||||||
ret_val["headers"]["Accept"] = "*/*"
|
ret_val["headers"]["Accept"] = "*/*"
|
||||||
# GSA for iPhone useragent had been added in
|
|
||||||
# - https://github.com/searxng/searxng/pull/5644
|
|
||||||
# but doe no longer work
|
|
||||||
# - https://github.com/searxng/searxng/issues/6359
|
|
||||||
# ret_val["headers"]["User-Agent"] = gen_gsa_useragent()
|
|
||||||
|
|
||||||
# Cookies
|
# Cookies
|
||||||
|
|
||||||
|
|||||||
@@ -1216,6 +1216,7 @@ engines:
|
|||||||
- name: google videos
|
- name: google videos
|
||||||
engine: google_videos
|
engine: google_videos
|
||||||
shortcut: gov
|
shortcut: gov
|
||||||
|
inactive: true
|
||||||
|
|
||||||
- name: google scholar
|
- name: google scholar
|
||||||
engine: google_scholar
|
engine: google_scholar
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ from lxml.etree import XPath, XPathError, XPathSyntaxError
|
|||||||
from lxml.etree import ElementBase, _Element # pyright: ignore[reportPrivateUsage]
|
from lxml.etree import ElementBase, _Element # pyright: ignore[reportPrivateUsage]
|
||||||
|
|
||||||
from searx import settings
|
from searx import settings
|
||||||
from searx.data import USER_AGENTS, gsa_useragents_loader
|
from searx.data import USER_AGENTS
|
||||||
from searx.version import VERSION_TAG
|
from searx.version import VERSION_TAG
|
||||||
from searx.exceptions import SearxXPathSyntaxException, SearxEngineXPathException
|
from searx.exceptions import SearxXPathSyntaxException, SearxEngineXPathException
|
||||||
from searx import logger
|
from searx import logger
|
||||||
@@ -82,14 +82,6 @@ def gen_useragent(os_string: str | None = None) -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def gen_gsa_useragent() -> str:
|
|
||||||
"""Return a random "Google Go App" User Agent suitable for Google
|
|
||||||
|
|
||||||
See searx/data/gsa_useragents.txt
|
|
||||||
"""
|
|
||||||
return choice(gsa_useragents_loader()) + " NSTNWV"
|
|
||||||
|
|
||||||
|
|
||||||
class HTMLTextExtractor(HTMLParser):
|
class HTMLTextExtractor(HTMLParser):
|
||||||
"""Internal class to extract text from HTML"""
|
"""Internal class to extract text from HTML"""
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
"""This script fetches user agents suitable for Google.
|
|
||||||
|
|
||||||
Output file: :origin:`searx/data/gsa_useragents.txt` (:origin:`CI Update data
|
|
||||||
... <.github/workflows/data-update.yml>`).
|
|
||||||
|
|
||||||
.. Source for user agents: https://github.com/intoli/user-agents/
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
from gzip import decompress
|
|
||||||
from json import loads
|
|
||||||
|
|
||||||
from searx.data import data_dir
|
|
||||||
from searx.network import get as http_get
|
|
||||||
from searx.utils import searxng_useragent
|
|
||||||
|
|
||||||
DATA_FILE = data_dir / "gsa_useragents.txt"
|
|
||||||
URL = "https://raw.githubusercontent.com/intoli/user-agents/main/src/user-agents.json.gz"
|
|
||||||
|
|
||||||
|
|
||||||
def fetch_gsa_useragents() -> list[str]:
|
|
||||||
response = http_get(URL, timeout=3.0, headers={"User-Agent": searxng_useragent()})
|
|
||||||
response.raise_for_status()
|
|
||||||
|
|
||||||
suas: set[str] = set()
|
|
||||||
for ua in loads(decompress(response.content)):
|
|
||||||
if (
|
|
||||||
"Android" in ua["userAgent"]
|
|
||||||
and "Chrome" in ua["userAgent"]
|
|
||||||
and "Samsung" not in ua["userAgent"]
|
|
||||||
and "Android 10; K" not in ua["userAgent"]
|
|
||||||
):
|
|
||||||
suas.add(ua["userAgent"])
|
|
||||||
|
|
||||||
luas = list(suas)
|
|
||||||
luas.sort()
|
|
||||||
|
|
||||||
return luas
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
useragents = fetch_gsa_useragents()
|
|
||||||
with DATA_FILE.open("w", encoding="utf-8") as f:
|
|
||||||
f.write("\n".join(useragents))
|
|
||||||
@@ -7,7 +7,6 @@ data.:
|
|||||||
all : update searx/sxng_locales.py and searx/data/*
|
all : update searx/sxng_locales.py and searx/data/*
|
||||||
traits : update searx/data/engine_traits.json & searx/sxng_locales.py
|
traits : update searx/data/engine_traits.json & searx/sxng_locales.py
|
||||||
useragents : update searx/data/useragents.json with the most recent versions of Firefox
|
useragents : update searx/data/useragents.json with the most recent versions of Firefox
|
||||||
gsa_useragents: update searx/data/gsa_useragents.txt with compatible useragents
|
|
||||||
locales : update searx/data/locales.json from babel
|
locales : update searx/data/locales.json from babel
|
||||||
currencies : update searx/data/currencies.json from wikidata
|
currencies : update searx/data/currencies.json from wikidata
|
||||||
EOF
|
EOF
|
||||||
@@ -20,7 +19,6 @@ data.all() {
|
|||||||
pyenv.activate
|
pyenv.activate
|
||||||
data.traits
|
data.traits
|
||||||
data.useragents
|
data.useragents
|
||||||
data.gsa_useragents
|
|
||||||
data.locales
|
data.locales
|
||||||
|
|
||||||
build_msg DATA "update searx/data/osm_keys_tags.json"
|
build_msg DATA "update searx/data/osm_keys_tags.json"
|
||||||
@@ -55,12 +53,6 @@ data.useragents() {
|
|||||||
dump_return $?
|
dump_return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
data.gsa_useragents() {
|
|
||||||
build_msg DATA "update searx/data/gsa_useragents.txt"
|
|
||||||
pyenv.cmd python searxng_extra/update/update_gsa_useragents.py
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
data.locales() {
|
data.locales() {
|
||||||
(
|
(
|
||||||
set -e
|
set -e
|
||||||
|
|||||||
Reference in New Issue
Block a user