Explorer
/opt/struktur/lead-engine/discovery/search.py
← Zurück ↓ Download
"""
search.py -- DuckDuckGo Suche via DDGS-Library.
"""

import logging

logger = logging.getLogger(__name__)

try:
    from duckduckgo_search import DDGS
    HAS_DDGS = True
except ImportError:
    HAS_DDGS = False


def search(query: str, max_results: int = 5) -> list:
    """
    Sucht via DuckDuckGo (DDGS-Library).

    Returns:
        Liste von URLs (bis zu max_results)
    """
    if not HAS_DDGS:
        logger.warning("duckduckgo_search nicht installiert: pip install duckduckgo-search")
        return []

    try:
        with DDGS() as ddgs:
            results = list(ddgs.text(query, max_results=max_results))

        links = []
        for r in results:
            href = r.get('href', '')
            if href and href.startswith('http'):
                links.append(href)

        return links

    except Exception as e:
        logger.debug(f"DuckDuckGo-Suche fehlgeschlagen ({query!r}): {e}")
        return []