diff --git a/helpers.py b/helpers.py index 94dcc2eb..1615bf60 100644 --- a/helpers.py +++ b/helpers.py @@ -1552,43 +1552,6 @@ def scrape_website_details(url): return f"k.A. (Allg. Fehler: {type(e).__name__})" -def is_valid_wikipedia_article_url(url): - """ - Prüft, ob eine Wikipedia-URL auf einen tatsächlich existierenden Artikel verweist. - Erkennt "red links" (nicht existierende Seiten), die trotzdem Status 200 zurückgeben. - """ - logger = logging.getLogger(__name__) - if not url or not "wikipedia.org/wiki/" in url.lower(): - return False - - headers = {"User-Agent": random.choice(USER_AGENTS)} - try: - # GET-Request ist nötig, um Weiterleitungen zu folgen - response = requests.get(url, timeout=7, allow_redirects=True, headers=headers) - - # 1. Primär-Check: Prüfe die finale URL auf den 'redlink=1' Parameter - if 'action=edit&redlink=1' in response.url: - logger.warning(f"URL-Check fehlgeschlagen (redlink=1): {url[:100]}") - return False - - # 2. Sekundär-Check: Prüfe auf Status-Code und typische "Seite existiert nicht"-Texte - if response.status_code == 200: - content_lower = response.text.lower() - # Deutsche und englische Phrasen für nicht-existente Seiten - if "diese seite existiert nicht" in content_lower or "wikipedia does not have an article with this exact name" in content_lower: - logger.warning(f"URL-Check fehlgeschlagen (Text 'Seite existiert nicht' gefunden): {url[:100]}") - return False - - logger.debug(f"URL-Check erfolgreich (200 OK, kein Redlink): {url[:100]}") - return True - else: - logger.warning(f"URL-Check fehlgeschlagen (Status {response.status_code}): {url[:100]}") - return False - - except requests.exceptions.RequestException as e: - logger.warning(f"URL-Check fehlgeschlagen (Request-Fehler): {url[:100]} - {e}") - return False - def is_valid_wikipedia_article_url(url): """ Prüft, ob eine Wikipedia-URL auf einen tatsächlich existierenden Artikel verweist.