This tutorial shows how to scrape Local.ch business leads from a saved search URL and export a clean CSV with title, rating, address, telephone, fax, mobile, email, and website fields. The goal is not blind volume; it is a repeatable workflow you can review in the browser, validate row by row, and hand to sales, SEO, or market research teams with fewer surprises.
The fastest starting point is the Local.ch Lead Scraper via URL template. Import the template, replace the sample URL with your approved Local.ch result page, confirm the CSV path, and run one page before expanding.
Before you start
Prerequisites and responsible scope
You need the UScraper local desktop app, a Local.ch search or listing URL your team is allowed to review, and a folder where CSV exports can land. Use a narrow URL first: one category, one city, one language, or one saved filter state. A URL-based scraper works best when a human has already confirmed that the page contains the right businesses.
Local.ch is part of a wider Swiss directory ecosystem. Review the official Local.ch homepage, telephone directory, phone number search, current robots.txt, localsearch terms, and localsearch privacy statement before you scale any automation. This article is operational guidance, not legal advice.
A lead CSV is useful only when it is collected responsibly and cleaned before outreach. Keep run sizes modest, avoid bypassing access controls, and document why each export exists.
Export shape
What the Local.ch lead scraper exports
The bundled workflow is shaped around the same fields analysts usually copy from Local.ch cards and detail pages. It writes rows through a Structured Export block, includes headers, and uses append mode so a paginated run can stack rows into one CSV.
| CSV column | Meaning | Validation check |
|---|---|---|
titre | Business title or listing name | Compare against the visible card heading. |
rating | Rating text when available | Expect blanks when ratings are not shown. |
adresse | Street, postal code, and locality | Deduplicate with title plus address. |
telephone | Main phone number | Normalize spacing before CRM import. |
fax | Fax number when labeled | Usually sparse; keep it only if your team uses it. |
portable | Mobile or portable number | Watch Swiss mobile prefixes during cleanup. |
email | Public email if exposed | Treat blanks as normal, not a failed row. |
site_web | External website | Strip tracking wrappers before enrichment if needed. |
The JSON export is the authoritative workflow definition. The excerpt below is shortened for readability, but it preserves the important shape: navigate to a Local.ch URL, inject helper JavaScript, wait for a hidden completion marker, export structured rows, then decide whether a next-page helper exists.
{
"project": {
"name": "Localch Lead Scraper via URL",
"description": "Scrapes local.ch listing/search pages and exports title, rating, address, telephone, fax, mobile, email, and website."
},
"start_url": "https://www.local.ch/fr/s/restaurant?rid=6b1d51",
"export": {
"fileName": "local-lead-scraper-via-url.csv",
"fileMode": "append",
"columns": ["titre", "rating", "adresse", "telephone", "fax", "portable", "email", "site_web"]
},
"loop": "export rows, check #uscraper-localch-next-button, click if present, wait, then repeat"
}
Run the workflow
How to scrape Local.ch business leads from a URL
Choose the Local.ch URL
Open Local.ch manually and build the exact search you want. Copy the final result URL only after the category, region, and language are correct.
Import the template
Download the workflow from Local.ch Lead Scraper via URL and import it into the UScraper local desktop app.
Replace Navigate
Edit the Navigate block and paste your approved Local.ch URL. Keep the first test narrow so selector or consent issues are easy to debug.
Confirm the export path
Open Structured Export and set the save folder. Keep includeHeaders enabled and append mode on when you want one file across pages.
Run one-page validation
Start with a dry run, then compare several CSV rows against the rendered cards and Local.ch detail pages before turning on broader pagination.
Clean before outreach
Deduplicate by title and address, normalize phone numbers, verify websites, and remove rows that do not fit your consent or outreach policy.
The template tries to reveal visible contact controls inside result cards, then fetches public detail pages as a fallback. If Local.ch shows CAPTCHA, bot protection, blocked contact controls, or a layout that no longer matches the selectors, pause the run and inspect the browser rather than forcing retries.
Alternatives
Local.ch scraper alternatives and when to use each
| Option | Best fit | Trade-off |
|---|---|---|
| UScraper local desktop app | Small to medium CSV batches from approved URLs, with visual review and local file custody. | You own selector maintenance when Local.ch changes markup. |
| Octoparse or Thunderbit templates | Teams already standardized on their no-code workspace. | Project behavior, pricing, and data handling follow that vendor environment. |
| Apify Local.ch actors | Scheduled cloud runs, API delivery, queues, and engineering handoff. | Cloud execution adds platform cost and remote infrastructure decisions. |
| Custom Playwright or Python scraper | Productized pipelines with tests, retries, and internal deployment. | More flexible, but slower to ship for a one-off lead CSV. |
| Scraping service vendors | Outsourced extraction when you need a delivered dataset, not an internal workflow. | Less control over day-to-day validation and refresh timing. |
That is the honest local.ch scraper vs Apify decision: use UScraper when the analyst needs a controlled desktop CSV from a known URL; use a hosted actor when the job is an ongoing cloud pipeline with API consumers.
Troubleshooting
FAQ and common issues
Local.ch listings can be publicly visible, but automated collection can still be limited by terms, robots directives, database rights, privacy law, and rules for commercial outreach. Use modest volumes, avoid bypassing access controls, document your purpose, and get legal review before using exported leads commercially.
Next step
Import the Local.ch Lead Scraper via URL, run a one-page sample, and keep the exported CSV beside your campaign notes so reviewers can trace each row back to the original Local.ch search. For neighboring workflows, browse the UScraper template library or continue through the UScraper blog for more local desktop app scraping tutorials.

