This tutorial shows how to scrape Local.ch leads by keyword and Swiss location into CSV. You will import the Local.ch Lead Scraper for Switzerland template, edit search URLs, set the export path, run a validation batch, and fix common issues before using the data for sales, SEO, or research.
Before you start
Prerequisites for scraping Local.ch leads
You need UScraper installed as a local desktop app, the current Local.ch Lead Scraper for Switzerland, and a folder for the CSV. You also need a focused search plan: category, city, canton, language, and result-page limit.
Local.ch is a Swiss local search and telephone directory, so export quality depends on query choice. Start with narrow searches such as Restaurant in Bern, Anwalt in Basel, or one niche service in one canton. Broad national queries create noisier rows and harder validation.
Before automation, review your target pages, the official Local.ch telephone directory, and Local.ch robots.txt. This is a technical guide, not legal advice.
Technical access is not permission. Do not bypass access controls, collect only fields you need, keep batches modest, and confirm that your use case is allowed.
Workflow anatomy
How the Local.ch business directory scraper works
The bundled JSON is the source of truth. It opens a finite list of Local.ch search URLs, waits for each page, runs a non-failing consent cleanup step, then appends matching listing cards into a CSV.
CSV
14
Keyword + city
1-10 list
Local review
| Workflow block | What it does | What to check |
|---|---|---|
| Navigate | Opens configured Local.ch keyword/location URLs | Replace sample searches and keep only approved pages. |
| Wait + Sleep | Lets result cards render before extraction | Increase pacing if pages load slowly or rows look sparse. |
| Inject JavaScript | Attempts a safe consent cleanup without failing the run | Recheck manually if a cookie banner covers results. |
| Structured Export | Extracts listing fields and appends to CSV | Confirm headers, filename, save folder, and append mode. |
| Loop Continue | Advances through the URL list | Keep the list finite so every run has a clear boundary. |
The stock template uses page 1 through page 10 examples for each keyword/location pair, which keeps runs easier to audit.
Runbook
How to scrape Local.ch leads step by step
Import the template
Open the Local.ch lead scraper template, download the workflow JSON, and import it into UScraper.
Choose narrow searches
Pick category and location pairs that match your research question. Start with one city and one profession before expanding.
Edit Navigate URLs
Replace sample URLs with your Local.ch search pages. Keep what, where, and page readable so rows are easy to trace.
Set the CSV folder
In Structured Export, confirm local_lead_scraper.csv, headers, append mode, and a project-specific local save location.
Run one page first
Run page 1 only. Compare the CSV rows against the browser before adding more pages or more locations.
Expand after validation
Add pages 2-10 only after title, address, phone, website, rating, and profile URL values look correct.
After the first export, sort by keyword and profile_url. Duplicates usually mean a rerun in append mode, a repeated search URL, or the same business appearing in nearby locations.
Output
Local.ch to CSV export fields
There is no bundled CSV sample for this post. Use the export shape summary with the workflow JSON: the JSON defines selectors and file settings; this table explains each column.
| Column | What it captures | Validation note |
|---|---|---|
keyword | Search context from what and where URL parameters | Use it to group rows by campaign, city, or profession. |
title | Business or listing name | Required for a usable lead row. |
location | Visible address text from the result card | Spot-check street, postal code, and locality. |
category | Category labels extracted from listing text | Clean separators before segmentation. |
opening_hours | Current open or closed signal when visible | Treat as a status hint, not a permanent schedule. |
customer_rating and reviews_count | Rating and review volume | Useful for local SEO and reputation research. |
telephone and mobile_phone | Visible phone numbers | Some listings may publish only one or neither. |
email and website | Visible contact or external website links | Blank cells are normal when Local.ch does not expose them. |
description and languages | Short snippets and language signals when visible | Best used as enrichment, not required lead identity. |
profile_url | Local.ch detail page URL | Keep it for audit, dedupe, and manual review. |
Validation
Validate Local.ch lead data before outreach
A Local.ch lead scraper is only useful if exported rows survive verification. Open the CSV beside the browser and inspect the first, middle, and final rows from each keyword/location batch.
Check identity first: title, location, and profile_url should point to the same business. Then check contact fields against visible page content. Finally, review category, rating, and language fields to make sure they are not swallowing unrelated listing text.
If several first-page rows have wrong names, broken profile URLs, or shifted columns, stop and adjust the workflow. If only optional values are blank, the run may still be valid.
Alternatives
Best Local.ch scraper fit: local desktop workflow or hosted API?
Searches for best Local.ch scraper or Apify Local.ch scraper alternative usually compare operating models, not just fields. UScraper fits local desktop runs, visible browser review, and immediate CSV QA. Hosted scrapers and actor APIs fit cloud scheduling, API calls, managed datasets, or infrastructure your team does not want to operate.
| Option | Good fit | Trade-off |
|---|---|---|
| UScraper Local.ch template | Local CSV review, editable keyword/city URLs, supervised lead QA | You own pacing, validation, and selector maintenance. |
| Hosted actor or API tools | Scheduled runs, API access, cloud datasets | Data leaves the local workflow and pricing may scale with usage. |
| Generic no-code scraper builders | Teams already standardized on that builder | You may need to rebuild selectors and export checks yourself. |
Troubleshooting
Common Local.ch scraper issues
Confirm the page has listing cards, not a no-results message. Then check whether a consent banner, verification page, or changed markup is blocking the row selector.
FAQ
Local.ch lead scraper FAQ
Local.ch listings may be publicly visible, but automated collection can still be limited by site terms, robots directives, database rights, privacy rules, and outreach law. Review current rules and get legal advice before commercial use.

