search.ch Scraper: Firmenkontakte aus search.ch als CSV oder Excel exportieren
Du brauchst die Firmen einer Branche in einer Schweizer Stadt, mit Telefon, E-Mail und Website, als Tabelle? Der search.ch Scraper auf Apify holt sie aus dem Verzeichnis tel.search.ch, ohne Code. Hier sind die Eingaben, der Export und ein echter Testlauf mit Elektrikern in Basel.
In diesem Tutorial
Das bekommst du
search.ch ist das grosse Schweizer Telefonbuch mit Firmen- und Privateinträgen. Der Actor sucht dort nach Suchbegriff und Ort und legt jeden Treffer als Zeile in einer Tabelle ab. Pro Eintrag bekommst du:
- Name, Kategorie, Adresse mit Strasse, PLZ, Ort und Kanton.
- Telefon, Mobil, Fax und Website, soweit der Eintrag sie zeigt.
- E-Mail, wenn der Eintrag eine hat. Sie steht nur auf der Detailseite.
- Öffnungszeiten, wenn vorhanden, und ein Feld
entry_type(business oder private).
Der Standard ist includeDetails: true: Der Actor öffnet dann die Detailseite jedes Eintrags. Ohne Detailseiten bekommst du nur die Felder aus der Trefferliste.
Apify-Konto anlegen
- Öffne die Seite des search.ch Scrapers auf Apify.
- Klicke auf Try for free und registriere dich mit Google oder E-Mail.
- Du landest in der Apify Console im Tab Input des Actors.
Branche und Stadt eintragen
{
"query": "Elektriker",
"location": "Basel",
"maxResults": 100,
"includeDetails": true,
"includePrivateEntries": false
}query: Branche, Leistung oder Firmenname, zum Beispiel „Elektriker“, „Zahnarzt“ oder „Restaurant“.location: Ort oder Region, zum Beispiel „Basel“ oder „Bern“. Leer heisst ganze Schweiz.maxResults: wie viele Einträge höchstens (Standard 100, erlaubt 1 bis 5000).includeDetails: Detailseiten öffnen für E-Mail und Öffnungszeiten. Langsamer, dafür reicher.
Weitere Filter gibt es nicht. Du grenzt die Treffer über Suchbegriff und Ort ein.
Actor starten
Klicke auf Start. Der Actor liest die Trefferseiten und öffnet bei includeDetails zusätzlich jede Detailseite. Ein Lauf mit vielen Einträgen dauert deshalb länger als einer mit wenigen. Das Ergebnis erscheint live im Tab Output.
Daten exportieren
Im Tab Output klickst du auf Export und wählst CSV, Excel oder JSON. Die CSV-Datei öffnest du direkt in Excel oder Google Sheets.
Beispiel: Elektriker in Basel
Du suchst Elektrobetriebe in Basel für eine Kooperation oder eine Anfrage und willst sie als Liste mit Telefon, E-Mail und Website. Wir haben den Actor einmal lokal auf unserem Rechner laufen lassen (kein Apify-Cloud-Lauf, direkte Verbindung, 21.10.2026, rund 5 Minuten) mit dieser Eingabe:
{
"query": "Elektriker",
"location": "Basel",
"maxResults": 100,
"includeDetails": true,
"includePrivateEntries": false
}- 60 Zeilen kamen zurück, obwohl
maxResults100 war: Mehr Treffer hatte die Suche nicht. Davon waren 11 private Einträge (entry_type= private). Für die Firmenliste haben wir sie entfernt. Es bleiben 49 Firmeneinträge. - Von den 49 haben 46 eine Telefonnummer, 37 eine E-Mail, 30 eine Website und 25 beides. Bei 7 gibt es weder E-Mail noch Website, 6 davon haben immerhin eine Nummer.
- 43 der 49 stehen in der Stadt Basel (PLZ 4051 bis 4059), 6 in Reinach (2), Aesch, Riehen, Arlesheim und Luzern (je 1). Der Luzerner Betrieb kam wohl über die Baselstrasse in die Suche. Prüfe Ort und PLZ, bevor du die Liste verwendest.
- 2 Telefonnummern kommen mehrfach vor und 1 Name doppelt. Entferne Dubletten vor dem Versand.
- Die Nummern stehen in der lokalen Schreibweise (37 beginnen mit 061), nicht mit +41. Die Spalte
categoryist bei 38 der 49 Zeilen „Electric installations“, also auf Englisch, und bei einer Zeile leer. - Das ist ein einzelner kleiner Lauf. Die Quoten können bei anderen Branchen und Städten anders ausfallen.
Kosten: Auf Apify wären das 0,05 $ Start plus 60 × 0,005 $ = 0,35 $. Abgerechnet werden alle 60 Zeilen, auch die 11 privaten. Pro brauchbarem Firmeneintrag sind das gut 0,007 $. Der lokale Lauf selbst hat nichts gekostet.
Auf Apify läuft der Actor über Apifys Proxy; lokal gab es keinen. Die Zahlen oben stammen aus dem lokalen Lauf. Namen und Nummern zeigen wir hier bewusst nicht.
Felder im Ergebnis
Die Felder laut Output-Schema des Actors:
| Feld | Inhalt |
|---|---|
name | Name des Eintrags |
entry_type | business oder private |
category | Kategorie / Branche (kann auf Englisch sein) |
address, street, zip, city, canton | Adresse, Kanton als Kürzel |
phone, mobile, fax | Telefon, Mobil, Fax |
email | E-Mail, nur auf Detailseiten |
website | Website der Firma |
opening_hours | Öffnungszeiten |
description | Beschreibungstext der Detailseite (im Test nur ein Standardtext der Seite) |
source_url, detail_url, scraped_at | Quelle, Detailseite und Zeitstempel |
E-Mails und Anreicherung
Die E-Mail aus dem Eintrag ist oft eine allgemeine Adresse. Für weitere Adressen gibst du die Spalte website in den Website Email Scraper. Für Ansprechpartner und weitere Kontaktdaten von der Firmen-Website gibt es den Website Contact Extractor.
API und Schedule
Jeden Lauf kannst du auch per Apify API starten und die Ergebnisse als JSON, CSV oder Excel abrufen. Die API-Beispiele zeigt dir Apify im Tab API des Actors. Mit einem Schedule in der Apify Console startest du denselben Lauf täglich oder wöchentlich.
Prompt für Claude zum Kopieren
Füge in Claude den Apify MCP Server als eigenen Konnektor mit dieser URL hinzu (siehe Apifys MCP-Dokumentation). Die URL beschränkt Claude auf diesen einen Actor:
https://mcp.apify.com?tools=santamaria-automations/search-ch-scraperDann fügst du diesen Prompt ein und ersetzt Branche und Stadt durch deine:
Nutze den Apify MCP Server. Starte den Actor santamaria-automations/search-ch-scraper mit query "Elektriker", location "Basel",
maxResults 100, includeDetails true und includePrivateEntries false.
Sag mir vor dem Start, was der Lauf kostet, und warte auf mein OK.
Wenn er fertig ist: Entferne alle Zeilen mit entry_type "private" und sag mir, wie viele es waren. Zähle dann bei den übrigen Zeilen,
wie viele eine E-Mail, eine Website und eine Telefonnummer haben, wie viele Einträge ausserhalb der Stadt Basel liegen
und welche Telefonnummern oder Namen doppelt vorkommen. Gib mir eine Tabelle mit Name, Adresse, Telefon, E-Mail und Website.Getestet haben wir den Actor und die Eingaben, nicht die Prompts über MCP; Claude formuliert die Kostenangabe eventuell anders.
Was das kostet
Laut Store-Preis kostet ein Lauf 0,05 $ Start, dazu 0,005 $ pro Eintrag mit Detailseite oder 0,003 $ pro Eintrag ohne Detailseiten (dann fehlen E-Mail und Öffnungszeiten). 100 Einträge mit Details kosten damit 0,55 $. Der Testlauf oben lief lokal und hat nichts gekostet, die Zahlen gelten also für den Lauf auf Apify. Den aktuellen Gratis-Betrag des Free-Plans findest du auf Apifys Preisseite. Mehr auf der Actor-Seite.
Anwendungen
- Lokale Firmenlisten: alle Einträge einer Branche in einer Stadt als Tabelle für Vertrieb oder Marktanalyse.
- Adressabgleich: bestehende Kundenlisten mit aktuellen Telefon- und Webdaten vergleichen.
- Marktübersicht: Anbieter und Standorte einer Region nebeneinander sehen.
- Weitere Verarbeitung: Website-Spalte an den Email Scraper geben und die Liste im CRM weiterverwenden.
Häufige Fragen
Bekomme ich E-Mail-Adressen?
Ja, wenn der Eintrag eine hat. E-Mails stehen nur auf den Detailseiten, also nur mit includeDetails (Standard). Im Testlauf (Elektriker in Basel) hatten 37 von 49 Firmeneinträgen eine E-Mail. Für fehlende Adressen gibst du die Website-Spalte in den Website Email Scraper.
Kommen auch Privatpersonen in die Tabelle?
Ja, möglich. Jede Zeile hat das Feld entry_type mit business oder private. Im Testlauf waren 11 von 60 Zeilen private Einträge. Für eine reine Firmenliste filterst du die Spalte entry_type auf business.
Kann ich die ganze Schweiz auf einmal durchsuchen?
Ja: Lässt du location leer, sucht der Actor in der ganzen Schweiz. Üblicher ist ein Lauf pro Stadt oder Region. maxResults darf bis 5000 gehen.
Was kostet der search.ch Scraper?
Laut Store-Preis 0,05 $ pro Lauf plus 0,005 $ pro Eintrag mit Detailseite (0,003 $ ohne Detailseiten). Der Testlauf mit 60 Zeilen käme auf 0,35 $.
Brauche ich Claude?
Nein. Die Schritte 1 bis 4 funktionieren komplett in der Apify Console. Der MCP-Link ist nur eine Option.
Darf ich die Adressen für Werbung nutzen?
Das hängt vom Einzelfall ab, zum Beispiel vom Sterneintrag. Lies dazu den Abschnitt zu Datenschutz und Recht. Das ist keine Rechtsberatung.
Hinweis zu Datenschutz und Recht
Der Actor sammelt Einträge, die auf search.ch öffentlich angezeigt werden. Die Einträge können Personendaten enthalten, etwa den Namen eines Einzelunternehmers. Für den Umgang damit bist du verantwortlich. In der Schweiz gilt das revidierte Datenschutzgesetz (nDSG), bei Bezug zur EU auch die DSGVO. Für Werbung gilt das UWG: Nach Art. 3 Abs. 1 lit. u UWG handelt unlauter, wer Werbeanrufe oder Massenwerbung an Personen richtet, die im Telefonbuch mit einem Stern (Sterneintrag, „keine Werbung“) eingetragen sind. Auch Massenwerbung ohne Einwilligung oder ohne korrekte Absenderangabe ist nach lit. u unzulässig. Prüfe also vor jeder Ansprache, ob ein solcher Vermerk besteht. Beachte ausserdem die Nutzungsbedingungen von search.ch. Das ist keine Rechtsberatung; frag im Zweifel eine Anwältin oder einen Anwalt.
Weiterführende Links
- search.ch Scraper, Actor-Seite: alle Felder und Preise.
- Telefonbuch Scraper Tutorial: Firmendaten aus dem deutschen Telefonbuch.
- Google Maps Scraper Tutorial: Firmendaten aus Google Maps.
- Website Email Scraper: E-Mails auf den gefundenen Webseiten finden.
- Website Contact Extractor: Kontaktdaten von Firmen-Websites.