bugfix
This commit is contained in:
@@ -2434,23 +2434,28 @@ def scrape_website_details(url):
|
|||||||
logger.warning(f"Ausführe 'scrape_website_details' fuer URL {url[:100]}...") # Logge den Start auf Warning
|
logger.warning(f"Ausführe 'scrape_website_details' fuer URL {url[:100]}...") # Logge den Start auf Warning
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Hilfsfunktion zum Abrufen des Soup-Objekts mit Retry.
|
# Hilfsfunktion zum Abrufen des Soup-Objekts mit Retry.
|
||||||
# Nutzt retry_on_failure, requests, BeautifulSoup, Config.
|
# Nutzt retry_on_failure, requests, BeautifulSoup, Config.
|
||||||
@retry_on_failure
|
@retry_on_failure
|
||||||
def get_soup_for_details(target_url):
|
def get_soup_for_details(target_url):
|
||||||
# Führen Sie die GET-Anfrage aus. Der retry_on_failure Decorator behandelt RequestsExceptions.
|
# --- START DES NEUEN/ERSETZTEN BLOCKS ---
|
||||||
# Timeout sollte aus Config kommen. Standardmaessig pruefen wir SSL-Zertifikate.
|
if not target_url or not isinstance(target_url, str): # Zusätzliche Prüfung
|
||||||
response = requests.get(target_url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 15), verify=True) #verify=True Standard
|
logger.error(f"get_soup_for_details: Ungültige URL '{target_url}' erhalten.")
|
||||||
# Wirft HTTPError fuer 4xx/5xx Antworten. Wird vom Decorator gefangen und (je nach Status) behandelt.
|
raise ValueError("Ungültige URL für get_soup_for_details") # Damit retry greift oder als Fehler propagiert wird
|
||||||
response.raise_for_status()
|
|
||||||
# Versuchen Sie, das Encoding zu erraten
|
|
||||||
response.encoding = response.apparent_encoding
|
|
||||||
# Parsen Sie den HTML-Inhalt
|
|
||||||
return BeautifulSoup(response.text, getattr(Config, 'HTML_PARSER', 'html.parser'))
|
|
||||||
|
|
||||||
# Rufen Sie die Hilfsfunktion auf, um das Soup-Objekt zu erhalten
|
if not target_url.lower().startswith(("http://", "https://")):
|
||||||
soup = get_soup_for_details(url)
|
logger.debug(f"get_soup_for_details: Füge 'https://' zu URL '{target_url}' hinzu.")
|
||||||
|
target_url = "https://" + target_url
|
||||||
|
|
||||||
|
response = requests.get(target_url, timeout=getattr(Config, 'REQUEST_TIMEOUT', 15), verify=True)
|
||||||
|
response.raise_for_status()
|
||||||
|
response.encoding = response.apparent_encoding
|
||||||
|
return BeautifulSoup(response.text, getattr(Config, 'HTML_PARSER', 'html.parser'))
|
||||||
|
# --- ENDE DES NEUEN/ERSETZTEN BLOCKS ---
|
||||||
|
|
||||||
|
# Rufen Sie die Hilfsfunktion auf, um das Soup-Objekt zu erhalten
|
||||||
|
soup = get_soup_for_details(url)
|
||||||
|
|
||||||
# Wenn das Soup-Objekt erfolgreich erhalten wurde
|
# Wenn das Soup-Objekt erfolgreich erhalten wurde
|
||||||
if soup:
|
if soup:
|
||||||
@@ -4686,7 +4691,7 @@ class DataProcessor:
|
|||||||
if not self._get_cell_value_safe(row_data, "Wikipedia Timestamp").strip(): grund_message_parts_wiki.append('Z (Wikipedia Timestamp) leer')
|
if not self._get_cell_value_safe(row_data, "Wikipedia Timestamp").strip(): grund_message_parts_wiki.append('Z (Wikipedia Timestamp) leer')
|
||||||
if self._get_cell_value_safe(row_data, "Chat Wiki Konsistenzpruefung").strip().upper() == "X (URL COPIED)": grund_message_parts_wiki.append("AC (Chat Wiki Konsistenzpruefung)='X (URL COPIED)'")
|
if self._get_cell_value_safe(row_data, "Chat Wiki Konsistenzpruefung").strip().upper() == "X (URL COPIED)": grund_message_parts_wiki.append("AC (Chat Wiki Konsistenzpruefung)='X (URL COPIED)'")
|
||||||
grund_message_wiki = ", ".join(filter(None, grund_message_parts_wiki)) or "Unbekannter Grund (Wiki)"
|
grund_message_wiki = ", ".join(filter(None, grund_message_parts_wiki)) or "Unbekannter Grund (Wiki)"
|
||||||
self.logger.info(f"Zeile {row_num_in_sheet}: Fuehre WIKI Schritte aus (Grund: {grund_message_wiki})...")
|
self.logger.info(f"Zeile {row_num_in_sheet}: Fuehre WIKI Schritte aus (Grund: {grund_message_wiki})..."))
|
||||||
|
|
||||||
# Hole aktuellen Wiki-URL der Tochter aus Spalte R
|
# Hole aktuellen Wiki-URL der Tochter aus Spalte R
|
||||||
current_wiki_url_in_sheet_for_daughter = self._get_cell_value_safe(row_data, "Wiki URL").strip()
|
current_wiki_url_in_sheet_for_daughter = self._get_cell_value_safe(row_data, "Wiki URL").strip()
|
||||||
|
|||||||
Reference in New Issue
Block a user