diff --git a/src/scout_logic.py b/src/scout_logic.py index af0fd70..97a1123 100644 --- a/src/scout_logic.py +++ b/src/scout_logic.py @@ -1,6 +1,11 @@ """ Scout-Logik: Domain scannen, Links extrahieren, via OpenRouter Publikations-URL identifizieren. Mit Stealth und HTTP/2-Fallback gegen extreme Bot-Detection. + +Strategie: Es wird die EINSTIEGS-/ÜBERSICHTSSEITE (Hub) für Research/Reports ermittelt, nicht +die finale Download-Seite. Beratungen (z. B. McKinsey) bauen verschachtelt auf: + Hub (z. B. mgi/our-research/all-research) → Untergruppen → Berichte → Download. +Der Scout liefert den Hub-URL als Absprungpunkt; tieferes Crawling übernimmt ein anderer Schritt. """ import asyncio import json @@ -177,9 +182,13 @@ async def _ask_openrouter(api_key: str, links: list[dict[str, str]], domain: str """ logger.info("OpenRouter: sending request for %d links (domain=%s)", len(links), domain) base_url = _url_with_www(domain) + # Ziel: Einstiegs-/Übersichtsseite (Hub) für Research/Reports – nicht die finale Download-Seite. + # Beratungen (z. B. McKinsey) bauen verschachtelt: Hub → Untergruppen → einzelne Berichte → Download. prompt = ( "Analysiere diese Links einer Unternehmensberatung. " - "Welcher Link führt zur Seite mit Reports, Insights oder Fachartikeln? " + "Gesucht ist die EINSTIEGS- oder ÜBERSICHTSSEITE für Research, Insights oder Fachartikel " + "(z. B. 'Our Research', 'All Research', 'Featured Insights', 'Publications'). " + "Nicht die einzelne Report-Seite, sondern die Hub-Seite, von der aus Untergruppen und Berichte erreichbar sind. " "Antworte NUR mit der absoluten URL im JSON-Format: {'url': '...'}" ) links_text = "\n".join(