Ein Fundstück für Onlinehändler und ein Test für KI. Wer sich schon immer gefragt hat, woher OTTO eigentlich seine Produkte bezieht, wird jetzt fündig: OTTO hat gleich zwei umfangreiche Lieferantenlisten veröffentlicht. Hunderte Namen und Adressen – von internationalen Outdoor-Profis bis zu globalen Playern. Für Onlinehändler, die neue Bezugsquellen suchen, ein Goldstück!

Doch so ehrlich müssen wir sein: In den Listen fehlen Infos – nämlich Produktgruppen und Kontaktdaten der richtigen Ansprechpartner. Eine E-Mail-Adresse sucht man vergeblich.

Genau hier kommt die KI ins Spiel: Der Autor hat die komplette Liste hochgeladen und von einer KI prüfen lassen: Wer liefert was, welche Branche und wie finde ich den ersten Draht zum Lieferanten, also wo finde ich die Mailadresse?

Das Ergebnis:

Die KI erkennt auf Basis von Firmennamen, Adresse und Handelsregisterdaten, welche Produktsegmente wahrscheinlich hinter jedem Lieferanten stehen – von Fashion bis Elektronik oder Baumarkt.

Mit Tools wie LinkedIn, Handelsregisterdatenbanken und sogar Google Maps werden Ansprechpartner und oft auch Telefon, E-Mail und Webadresse gefunden oder zumindest vorgeschlagen.

Name Country City Address Mailadresse(n) Produkte / Tätigkeitsfeld
Grori Konfeksion Albania Durrës 17 Rruga Rinia Durrsake [email protected] Bekleidung / Konfektion / Textilien
Square Denims Ltd. Bangladesh Dhaka Square Centre, 48 Mohakhali C/A [email protected], [email protected] Denim / Jeans / Bekleidung / Textile
Integra Design Ltd. Bangladesh Dhaka Plot #522, Dhour, Nishatnagar, Turag [email protected] Bekleidung / Woven / Mode
Pakiza Knit Composite Ltd. Bangladesh Dhaka A-1/5 Mojidpur, Borobila, Savar [email protected], [email protected] Strickwaren / Knitwear / Textilien
River Side Sweater Ltd. Bangladesh Dhaka Hasnabad, Equria [email protected], [email protected] Sweater / Strickwaren
Daeyu Bangladesh Ltd. Bangladesh Gazipur Bhannara, Mouchak, Kaliakoir [email protected], [email protected] Bekleidung / Knit & Woven Garments
Integra Dresses Ltd. Bangladesh Gazipur Koromtola, Pubail keine öffentliche Mailadresse gefunden Kleider / Mode
Islam Knit Designs Ltd. Bangladesh Gazipur Block F, Jarun, Konabari keine öffentliche Mailadresse gefunden Strickwaren / Knitwear

Das Matching für Händler funktioniert deutlich schneller als jede manuelle Recherche: Die „KI-Liste“ ist der perfekte Ausgangspunkt für eigene Sourcing-Anfragen oder automatisierte Serienanschreiben – spart Zeit, Nerven und bringt neue Produkte ins Listings.

Hier findest du die Original-Lieferantenliste als Download und Details zum KI-Sourcing-Test.
Probier’s selbst aus und berichte in den Kommentaren!

Liste 1: https://wortfilter.de/wp-content/uploads/2025/10/final_list_facilities_july_2024.pdf

Liste 2: https://wortfilter.de/wp-content/uploads/2025/10/otto-group_list-of-business-partners-and-factories.pdf

Hunderte an OTTO Lieferanten

final_list_facilities_july_2024
otto-group_list-of-business-partners-and-factories

Und wer es richtig smart machen möchte, der verwendet Python. Wie ihr das mit Python umsetzen könnt erklärt euch ChatGPT. Fragt und ihr bekommt die richtigen Antworten. Wichtig ist, dass ihr mit der KI kommuniziert. Wenn ihr nicht mehr weiter wisst, dann fragt. Das ist das Ergebnis der automatischen Abfrage. Python liest das .pdf ein, analysiert es und führt mit Hilfe des SerpAPI-Keys die Webanfrage aus. Danach schreibt es die Ergebnisse in einer html-Tabelle.

Der vollständige Code:

import os
import re
import json
import requests
from PyPDF2 import PdfReader
from bs4 import BeautifulSoup

# ==========================
# 🔑 Deine SerpAPI API-Key
# ==========================
SERPAPI_KEY = "DEIN_SERPAPI_KEY_HIER"  # <-- hier deinen Key einfügen

# ==========================
# 📄 PDF EINLESEN UND PARSEN
# ==========================
def extract_companies_from_pdf(pdf_path):
    reader = PdfReader(pdf_path)
    text = ""
    for page in reader.pages:
        text += page.extract_text() + "\n"

    lines = [line.strip() for line in text.split("\n") if line.strip()]
    companies = []
    for line in lines:
        parts = re.split(r"\s{2,}", line)
        if len(parts) >= 3:
            name = parts[0]
            country = parts[1] if len(parts) > 1 else ""
            city = parts[2] if len(parts) > 2 else ""
            address = parts[3] if len(parts) > 3 else ""
            companies.append({
                "Name": name,
                "Country": country,
                "City": city,
                "Address": address
            })
    return companies[:10]  # Nur die ersten 10 für Demo

# ==========================
# 🌐 WEB-SUCHE MIT SERPAPI
# ==========================
def serpapi_search(query):
    url = "https://serpapi.com/search"
    params = {
        "engine": "google",
        "q": query,
        "hl": "en",
        "gl": "bd",
        "api_key": SERPAPI_KEY,
        "num": 10
    }
    response = requests.get(url, params=params)
    return response.json()

# ==========================
# 🧩 INFORMATIONEN EXTRAHIEREN
# ==========================
def extract_info_from_results(results):
    text_dump = json.dumps(results)
    emails = list(set(re.findall(r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}", text_dump)))
    snippet_texts = [res.get("snippet", "") for res in results.get("organic_results", [])]
    products = []
    for s in snippet_texts:
        if any(word in s.lower() for word in ["product", "manufacture", "garment", "knit", "jeans", "textile", "shirt", "apparel"]):
            products.append(s)
    return ", ".join(emails[:3]), " / ".join(products[:2])

# ==========================
# 🎨 HTML-TABELLE IM WORTFILTER-STIL
# ==========================
def generate_html_table(data):
    style = """
    <style>
    .wf-table {
        width: 100%;
        border-collapse: collapse;
        font-family: 'Inter', Arial, sans-serif;
        font-size: 15px;
        background-color: #fafafa;
        color: #222;
        border: 1px solid #e5e5e5;
        box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    }
    .wf-table th {
        background-color: #f3f3f3;
        text-align: left;
        padding: 10px;
        border-bottom: 2px solid #ddd;
        font-weight: 600;
    }
    .wf-table td {
        padding: 8px;
        border-bottom: 1px solid #eee;
    }
    .wf-table tr:nth-child(even) { background-color: #f9f9f9; }
    .wf-table tr:hover { background-color: #f1f1f1; }
    </style>
    """
    html = style + "<table class='wf-table'><thead><tr><th>Name</th><th>Country</th><th>City</th><th>Address</th><th>Mailadresse(n)</th><th>Produkte / Tätigkeitsfeld</th></tr></thead><tbody>"
    for c in data:
        html += f"<tr><td>{c['Name']}</td><td>{c['Country']}</td><td>{c['City']}</td><td>{c['Address']}</td><td>{c.get('Emails','')}</td><td>{c.get('Products','')}</td></tr>"
    html += "</tbody></table>"
    return html

# ==========================
# 🧮 HAUPTPROGRAMM
# ==========================
def main():
    pdf_path = "final_list_facilities_july_2024.pdf"
    companies = extract_companies_from_pdf(pdf_path)
    print(f"📘 {len(companies)} Firmen extrahiert")

    enriched_data = []
    for company in companies:
        query = f"{company['Name']} + Bangladesh + email + contact + products"
        print(f"🔍 Suche nach: {query}")
        results = serpapi_search(query)
        emails, products = extract_info_from_results(results)
        company["Emails"] = emails
        company["Products"] = products
        enriched_data.append(company)

    html_output = generate_html_table(enriched_data)
    with open("firmen_tabelle.html", "w", encoding="utf-8") as f:
        f.write(html_output)
    print("✅ Fertig! Datei gespeichert: firmen_tabelle.html")

if __name__ == "__main__":
    main()

Das Ergebnis:

NameCountryCityAddressMailadresse(n)Produkte / Tätigkeitsfeld
Neiser Group As Estonia Harjumaa Seljaku 6, Laagri76401 HarjumaaEstonia n.a. (low-risk)[email protected]Neiser Privaatsustingimused. Seljaku 6, Saue vald, Laagri alevik, 76401, Harjumaa, ESTONIA. PRODUCTION. Neiser is a manufacturer of soft furniture since 1992.
Tiksoja Puidugrupp As Estonia Tartu Tartu maakondTartu linnTähtvere küla61410 n.a. (low-risk)[email protected]Products. Our portfolio features a wide range of solid wood furniture … Email: [email protected]. Address: Tähtvere, 61410 Tartumaa, Estonia. Location … / AS Tiksoja Puidugrupp is an effective Estonian manufacturer of adult- and children bedroom furniture … Tähtvere , Tartu, Estonia. 󱘢. [email protected].
HOTEL,PARDI, VALSAD,GUJARATSA8000[email protected], [email protected], [email protected]
122001,Haryana,Indiaamfori BSCI[email protected], [email protected], [email protected]Contact: +91-9810347149. Email : [email protected]. For Direct Customer Enquiry (B2C) Contact: +91-9999054454. Email : [email protected] · Home … / Seasons and Soul Consumer Products Pvt. Ltd. Pioneer Park, Sector 61, Gurgaon, Haryana -122001 Tel: 9667768014 Email: [email protected]
Meridian Fabrica India Karur 290-A,AMUTHAM NAGAR, M.G.ROAD,KARUR SA8000[email protected]Meridian Fabrica, Karur, Tamil Nadu – We are Manufacturer of Table Cloth, Aprons, Rayon Curtains, Cushion Cover and Tablecloths, Table Linen & Placemats. / From homes to hotels, and from concept to creation – Meridian Fabrica brings your textile dreams to life. Join hands with a brand that’s proudly woven in Karur …
SofuFabrikasUab Lithuania Sauliai SARUNO 12, LT-76161 SIAULIAI, LITHUANIA n.a. (low-risk)[email protected], [email protected], [email protected]Customer Service is your direct contact for questions about our dental technology and dental products. … You can also contact us by email: customerservice@shofu … / The SOFU Member has to email the Concierge Service quoting their SOFU ID from their Registered Email ID. They need to be clear on the Product that they wish …
Sidónios Seamless Tech, Sa. Portugal Barcelos Ladeira da Senra nr. 2 –Alheira – Apt. 297,4754-[email protected]Address, 2 Ladeira Da Senra, Alheira, Braga 4750 059, PT ; Phone, +351 253 886 250 ; Industry, Textile Manufacturing, Manufacturing General, Manufacturing. / … de Varzim, Portugal Apparel Less than 1000 workers 95% 0% – No. 345 Portugal Sidónios Seamless Tech, S.A. Ladeira da Senra, nº2 Alheira 4750-059 Barcelos …
Unirea Ludus S.C.M Romania Ludus STR. TAMPLARILOR NR.4LUDUSMURES Otto Group Assessment
Cad.Kalender Sk. No:12 34010 MerterIstanbulamfori BSCI[email protected], [email protected], [email protected]For product and general queries, please contact us using the form below, email us, or call us during business hours. For support enquiries, please open a … / Email. Send us an email. [email protected]. Phone. Give us a call. +91 80 … Contact us here for more general product inquiries! All ProductsCheckout …
Sen Tekstil Senol Esoglu Türkiye Izmir FATIH MAHALLESI 1135 SOK23/ AGAZIEMIR-

Das Ergebnis wird wahrscheinlich noch fehlerhaft sein, weil die Abfrage nicht interaktiv und sehr grob gestaltet worden ist. Dieses Beispiel soll zeigen wie einfach es für Newbies ist schnell nach vorne zu kommen. Hier jetzt eine Anleitung wie ihr euch Python installieren könnt. Nehmt aber auch gerne ChatGPT zur Hilfe.

🧠 FAQ: Wie installiere ich Python unter Windows 11?

1️⃣ Wo lade ich Python herunter?
👉 Lade die neueste Version direkt von der offiziellen Seite herunter:
https://www.python.org/downloads/windows/

Wähle Windows Installer (64-bit) und starte den Download.
2️⃣ Welche Option muss ich beim Installieren aktivieren?
Ganz wichtig: aktiviere beim ersten Fenster den Haken
✅ “Add Python to PATH”

Danach klickst du auf “Install Now”.

Das sorgt dafür, dass du Python später direkt in der Eingabeaufforderung starten kannst.
3️⃣ Wie teste ich, ob Python richtig installiert wurde?
Öffne die Eingabeaufforderung (CMD) und gib ein:
python --version

Wenn alles funktioniert, bekommst du z. B. diese Ausgabe:
Python 3.12.6

Falls du eine Fehlermeldung siehst (“wird nicht erkannt”), starte die Installation erneut mit dem PATH-Haken.
4️⃣ Wie installiere ich Pip und zusätzliche Pakete?
Prüfe zuerst, ob Pip verfügbar ist:
python -m pip --version

Wenn Pip fehlt:
python -m ensurepip

Danach kannst du beliebige Module installieren, z. B.:
python -m pip install serpapi PyPDF2 beautifulsoup4 requests
5️⃣ Wie starte ich ein Python-Skript?
Öffne den Ordner, in dem dein Skript liegt (z. B. im Explorer).
Tippe in die Adresszeile cmd und drücke Enter.

Dann gib ein:
python mein_skript.py

Beispiel:
python firmen_extraktor.py

➡️Melde dich zum wöchentlichen Newsletter an!⬅️