From df9aa9afb412d4d858a1c911397efcba45c02360 Mon Sep 17 00:00:00 2001 From: Floke Date: Mon, 30 Jun 2025 06:16:18 +0000 Subject: [PATCH] pfade angepasst --- helpers.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/helpers.py b/helpers.py index eb72c8d7..25c8457e 100644 --- a/helpers.py +++ b/helpers.py @@ -1393,9 +1393,10 @@ def search_linkedin_contacts(company_name, website, position_query, crm_kurzform # ============================================================================== @retry_on_failure -def get_website_raw(url, max_length=20000, verify_cert=False): +def get_website_raw(url, max_length=20000): # verify_cert wird entfernt """ Holt Textinhalt von einer Website, versucht Cookie-Banner zu umgehen. + Versucht zuerst eine sichere Verbindung, bei SSL-Fehler einen unsicheren Fallback. """ logger = logging.getLogger(__name__) if not url or not isinstance(url, str) or url.strip().lower() in ["k.a.", "kein artikel gefunden", "fehler bei suche", "http:"]: @@ -1411,13 +1412,22 @@ def get_website_raw(url, max_length=20000, verify_cert=False): return_marker = False try: - logger.debug(f"Versuche Website abzurufen: {url[:100]}... (verify={verify_cert})") - response = requests.get(url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 20), headers=headers, verify=verify_cert, allow_redirects=True, stream=False) + # Erster Versuch: Immer mit Zertifikatsprüfung (sicher) + logger.debug(f"Versuche Website sicher abzurufen: {url[:100]}... (verify=True)") + response = requests.get(url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 20), headers=headers, verify=True, allow_redirects=True, stream=False) response.raise_for_status() error_reason = None - except requests.exceptions.SSLError as e_ssl: - error_reason = f"SSL Fehler: {str(e_ssl)[:100]}..." - logger.warning(f"SSL Fehler (verify={verify_cert}) fuer {url[:100]}...: {e_ssl}") + except requests.exceptions.SSLError: + # Zweiter Versuch bei SSL-Fehler: Ohne Zertifikatsprüfung + logger.warning(f"SSL-Fehler fuer {url[:100]}... Versuche erneut mit verify=False.") + try: + response = requests.get(url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 20), headers=headers, verify=False, allow_redirects=True, stream=False) + response.raise_for_status() + error_reason = None # Fehler wurde behoben + except Exception as e_fallback: + # Wenn auch der Fallback fehlschlägt, ist es ein anderer Fehler + error_reason = f"Fallback-Request fehlgeschlagen nach SSLError: {type(e_fallback).__name__}" + logger.error(f"{error_reason} fuer {url[:100]}") except requests.exceptions.Timeout as e_timeout: error_reason = f"Timeout ({getattr(Config, 'REQUEST_TIMEOUT', 20)}s)" logger.warning(f"{error_reason} fuer {url[:100]}...")