This tutorial shows how to scrape PagesJaunes.ca business details from selected profile URLs into CSV with the PagesJaunes.ca Business Details Scraper template for UScraper. You will prepare detail URLs, import the workflow, validate the first rows, and handle cookie prompts, phone reveal buttons, visible reviews, and empty fields.
Before you start
Prerequisites and policy checks
You need UScraper installed as a local desktop app, a reviewed list of PagesJaunes.ca or YellowPages.ca business detail URLs, and a folder for CSV exports. Start with known /bus/ profile URLs rather than a broad keyword crawl.
Review the live PagesJaunes.ca directory, YellowPages.ca directory, Yellow Pages Canada terms, and current robots files for PagesJaunes.ca and YellowPages.ca before running a batch. Browser visibility does not automatically grant permission to reuse, resell, enrich, or contact from exported data.
Keep the first run small. Five detail URLs are enough to confirm whether the template still sees names, phones, websites, ratings, and visible review rows in your browser session.
Workflow
How the PagesJaunes.ca scraper workflow runs
The workflow is a multi-URL loop. Navigate stores detail-page URLs. Each page then goes through page-load waiting, consent cleanup, phone reveal, normalization, and Structured Export. Loop Continue advances to the next URL and appends rows to the same file.
Import the template
Open PagesJaunes.ca Business Details Scraper, download the JSON workflow, and import it into UScraper.
Replace the sample URL
In Navigate, replace the sample plumbing profile with your approved PagesJaunes.ca or YellowPages.ca detail URLs. Keep one business profile per input URL.
Keep the consent and reveal steps
Leave the cookie cleanup, body wait, short sleeps, and phone reveal JavaScript in place for the first validation run. These blocks reduce partial exports.
Set the CSV destination
In Structured Export, confirm the file name, save folder, headers, and append mode. Use a client or project-specific folder before production runs.
Validate then scale
Run five pages, compare the CSV against the visible pages, then expand the URL list only after you understand which fields are consistently present.
Export shape from the workflow JSON
The bundled JSON is the source of truth. It describes a business detail and visible review extractor for PagesJaunes.ca and YellowPages.ca. Structured Export writes pagesjaunes-ca-detail-scraper.csv, includes headers, and appends rows. Each visible review row repeats business fields, then adds review fields.
pagesjaunes-ca-detail-scraper.csvColumn
nom_du_magasin
Business name from the profile heading or page title.
Column
location
Visible address text, cleaned to remove route labels.
Column
téléphone
Phone number after visible reveal controls are clicked when possible.
Column
site_web
Outbound website link when the profile exposes one.
Column
type_de_restaurant
Restaurant type, category, or cuisine-like detail when present.
Column
spécialité
Specialties or profile category detail text.
Column
Language
Languages spoken or language detail field when visible.
Column
star_rating
Business or review rating value found on the page.
Column
nom_du_client
Reviewer display name from visible review rows.
Column
date
Review date or datetime attribute when exposed.
Column
commentaires
Cleaned review body without duplicated labels.
Column
utile
Helpful count when a review exposes one.
The workflow also contains JavaScript that removes common cookie overlays, tries common French and English phone buttons, and creates hidden normalized rows for Structured Export. That normalization step is why the CSV can repeat business columns across multiple visible review rows without asking you to hand-map every review selector.
{
"fileName": "pagesjaunes-ca-detail-scraper.csv",
"fileMode": "append",
"rowSelector": "#uscraper-yp-review-rows .uscraper-yp-review-row",
"columns": [
"nom_du_magasin",
"location",
"téléphone",
"site_web",
"type_de_restaurant",
"spécialité",
"Language",
"star_rating",
"nom_du_client",
"date",
"commentaires",
"utile"
]
}
Validation
Validate the first PagesJaunes.ca CSV
Open the CSV after the first short run. Do not judge the workflow only by row count. Check whether the source page and export agree on the business name, location, phone, website, rating, and first visible review.
Use this quick audit before you scale:
| Check | What to look for | Fix if it fails |
|---|---|---|
| URL input | Each input is a business detail page, not a search page | Use the info scraper or manual search to collect detail URLs first |
| Consent state | Cookie banner is gone before export | Rerun after accepting the prompt or keep the cleanup block enabled |
| Phone value | A real phone number appears, not a button label | Increase the post-click sleep or check the live phone reveal control |
| Review rows | Visible review text is present on the page | Accept that hidden pagination is not part of the stock workflow |
| CSV mode | Rows append under one header set | Rename the file between experiments to avoid duplicate batches |
Common issues and fixes
Some PagesJaunes.ca profiles require a click before the phone appears, and some profiles do not publish one. Watch a single run in the browser, confirm the button text changes, and add a longer sleep only if the number appears late.
Alternatives
UScraper, Octoparse, Apify, and DIY scripts
People searching for pagesjaunes ca scraper, yellowpages canada scraper, or octoparse pagesjaunes alternative usually compare three approaches: a local desktop workflow, a hosted marketplace actor, or custom code. The right choice depends on custody, scale, and who maintains selectors.
| Option | Good fit | Trade-off |
|---|---|---|
| UScraper local desktop app | Analyst-led CSV exports from reviewed detail URLs | You validate selectors and run cadence yourself |
| Octoparse PagesJaunes templates | Visual cloud or desktop scraping projects | Useful managed workflow, but less local-first than this UScraper pattern |
| Apify or GetOdata actors | Scheduled cloud extraction and API access | Better for production orchestration, with metered platform assumptions |
| Python or R scripts | Engineering-owned pipelines | Highest flexibility, highest maintenance burden |
For many teams, the practical path is staged: use the UScraper template library to validate fields locally, document the run, then move to a hosted actor or custom service only if recurring volume justifies it. For more local-first walkthroughs, browse the UScraper blog.
FAQ
Is it legal to scrape PagesJaunes.ca business details?
PagesJaunes.ca and YellowPages.ca pages may be public, but automation can still be limited by Yellow Pages Canada terms, robots guidance, privacy law, database rights, and marketing rules. Review the current policies, keep volume proportionate, avoid bypassing access controls, and get legal advice before resale, enrichment, or outreach.
What does the PagesJaunes.ca scraper export?
The workflow writes pagesjaunes-ca-detail-scraper.csv with business name, location, phone, website, restaurant or category details, specialties, language, star rating, reviewer name, review date, comment text, and helpful count when those values are visible on the loaded detail page.
Do I need a PagesJaunes.ca account or API key?
No account or API key is built into the UScraper workflow. It opens the detail URLs you provide in the local desktop app, handles common consent overlays, attempts to reveal visible phone controls, normalizes page data, and exports CSV rows.
Why are some review or phone fields blank?
Blank fields usually mean the business does not publish that value, the phone reveal did not expose a number, review rows were not visible after page load, a consent prompt blocked rendering, or PagesJaunes.ca changed markup. Run a small validation batch before scaling.
How is this different from an Octoparse PagesJaunes template?
Octoparse and hosted actors are useful when teams want managed cloud runs. This UScraper tutorial focuses on a local desktop app workflow where the JSON graph is imported, edited, run, and exported to a local CSV path under analyst control.

