This tutorial shows how to scrape Search.ch leads from a listing URL and export a reviewable CSV with business name, address, phone numbers, fax, email, website, detail link, categories, information, rating, review count, and source URL. The goal is controlled lead research: choose the page, run locally, then validate the rows.
Start by importing the Search.ch Lead Scraper via URL template. This post explains the runbook, validation checks, export shape, and common issues around that downloadable workflow.
Before you start
Prerequisites for a Search.ch scraper tutorial
You need UScraper installed as a local desktop app, the template linked above, a local export folder, and a Search.ch telephone directory URL your team is allowed to review. A good first URL is narrow: one category, one city or canton, and a page you would trust if you were copying records manually.
The sample workflow uses a URL shaped like:
https://search.ch/tel/?was=Restaurant&wo=Berne&pages=20
The important parts are was for the search topic, wo for the location, and pages=20 for the public listing batch. Change the category and location, but do not start with every possible combination.
Search.ch also provides official public API documentation for directory queries. Read the Search.ch API overview, phone directory API specification, API terms, general Search.ch terms, and current robots.txt before automating. This article is operational guidance, not legal advice.
A lead export is a research artifact, not permission to contact every row. Keep runs modest, avoid bypassing access controls, document the source URL, and review outreach rules before commercial use.
Route choice
Search.ch scraper API or local template: which route fits?
A Search.ch scraper API, the official Search.ch API, and a local desktop template can all be valid. The best Search.ch scraper for a one-time CSV job is not always the best tool for production integration.
| Route | Best fit | Trade-off |
|---|---|---|
| Official Search.ch phone directory API | Application lookups, caller identification, or integrations that fit the API terms | Requires key handling, response parsing, and policy review. |
| UScraper local desktop template | CSV lead research from a listing URL you can inspect in the browser | Selectors can need maintenance when Search.ch changes markup. |
| Hosted scraper platforms | Scheduled cloud runs, API delivery, queues, or team dashboards | Adds remote infrastructure, vendor pricing, and data custody decisions. |
Export shape
What the Search.ch lead scraper via URL exports
The bundled JSON export is the authoritative workflow definition. It navigates to the listing URL, waits for article.tel-resultentry cards, removes common consent overlays, scrolls until the page stops changing, fetches public detail pages when a detail link exists, and then runs Structured Export.
CSV
12
Listing URL
Scroll stable
Local QA
search-lead-scraper-via-url.csvColumn
title
Business or listing title.
Column
address
Street, postcode, and locality when shown.
Column
phone_numbers
One or more telephone values joined with a pipe.
Column
fax
Fax value when exposed on the detail page.
Column
Public mailto address when Search.ch exposes one.
Column
website
External business website after filtering Search.ch-owned hosts.
Column
detail_link
Search.ch detail page used for enrichment.
Column
categories
Directory category text.
Column
information
Longer public information text when available.
Column
rating
Visible rating value.
Column
review_count
Visible review count text.
Column
source_url
Search.ch listing URL used for the run.
There is no CSV sample in the bundle. Treat the export shape summary and workflow JSON as the sample: they explain what the template collects and which columns it writes.
{
"project": {
"name": "Searchch Lead Scraper via URL",
"description": "Scrapes Search.ch directory leads for https://search.ch/tel/?was=Restaurant&wo=Berne. Extracts title, address, phone numbers, fax, email, website, detail link, categories, information, rating, review count, and source URL."
},
"blocks": [
{
"title": "Navigate",
"config": {
"url": "https://search.ch/tel/?was=Restaurant&wo=Berne&pages=20"
}
},
{
"title": "Wait for Element",
"config": {
"selector": "article.tel-resultentry",
"visible": true
}
},
{
"title": "Structured Export",
"config": {
"fileName": "search-lead-scraper-via-url.csv",
"columns": ["title", "address", "phone_numbers", "fax", "email", "website", "detail_link", "categories", "information", "rating", "review_count", "source_url"]
}
}
]
}
Runbook
How to scrape Search.ch leads from a URL
Choose one listing URL
Open Search.ch manually, set the category and location, then copy the final URL after the page shows the right businesses.
Replace Navigate
Paste your approved Search.ch URL into the Navigate block. Keep pages=20 only after the first small test succeeds.
Confirm the export path
Open Structured Export, set the save folder, and keep headers enabled so reviewers can understand each column without opening the template.
Run a validation batch
Run one URL, open the CSV, and compare several rows with the rendered Search.ch cards plus their detail pages.
Clean before handoff
Deduplicate by title plus address, normalize phone numbers, verify websites, and remove records that do not fit your outreach or research policy.
The enrichment step is useful but intentionally conservative. Email, fax, website, and information can stay blank when Search.ch does not expose those fields publicly. Check the source page before changing selectors.
QA
Validate the Search.ch to CSV export
| Check | How to validate | Fix if it fails |
|---|---|---|
| Source traceability | Open source_url and detail_link for sampled rows | Remove records with missing or redirected source links. |
| Name and address | Compare title and address against the visible result card | Adjust selectors only after confirming the page exposes the values. |
| Contact fields | Check phone_numbers, fax, email, and website against the detail page | Leave blanks when fields are not public; do not infer values. |
| Category quality | Compare categories with the business category shown by Search.ch | Use category as a helper field, not a guaranteed taxonomy. |
| Row count | Compare exported rows with visible loaded cards, not the headline total | Narrow the URL or rerun after page load issues are fixed. |
Search.ch directory entries can be publicly visible, but automated collection may still be limited by Search.ch terms, API terms, robots directives, database rights, privacy law, and outreach rules. Review the current policies, avoid bypassing access controls, keep batches modest, and get legal review before commercial reuse.
Next step
Import the Search.ch Lead Scraper via URL template, run the restaurant-in-Berne sample or your own approved listing URL, and keep the first CSV beside your QA notes. For adjacent workflows, browse the UScraper templates or continue through the UScraper blog.

