Pagine Gialle Scraper — Italian Business Leads
Pricing
$10.00 / 1,000 results
Pagine Gialle Scraper — Italian Business Leads
Extract Italian business leads from PagineGialle.it with emails, phone numbers, WhatsApp contacts, websites, locations, ratings, social profiles, flat output, automatic deduplication, and per-query or global result limits.
Pricing
$10.00 / 1,000 results
Rating
4.3
(2)
Developer
Emiliano Mastragostino
Maintained by CommunityActor stats
2
Bookmarked
124
Total users
8
Monthly active users
13 hours
Issues response
2 days ago
Last modified
Categories
Share
🇬🇧 For English version, scroll below.
🇮🇹 Per la versione italiana, continua a leggere.
Pagine Gialle Scraper — Scraper di lead aziendali italiani 🇮🇹
Estrai lead aziendali strutturati da PagineGialle.it, la directory italiana delle Pagine Gialle.
Inserisci categorie e località, incolla URL specifici dei risultati di ricerca di PagineGialle oppure combina le due modalità. L’Actor restituisce record aziendali pronti per attività di lead generation, con deduplicazione automatica, indicatori sulla qualità dei contatti, tracciamento delle query e limiti globali o per singola ricerca.
Progettato per esecuzioni lunghe e affidabili, può elaborare numerose categorie, località, CAP e URL di ricerca diretti in una sola esecuzione, mantenendo pulito il dataset finale. Quando la deduplicazione è attiva, vengono addebitati solo i record aziendali unici effettivamente salvati nel dataset.
Perché usare questo scraper di Pagine Gialle?
Usa l’Actor per:
- Creare liste di lead B2B italiani.
- Raccogliere indirizzi email, numeri di telefono, contatti WhatsApp, siti web e profili social disponibili pubblicamente.
- Analizzare mercati locali, concorrenti e fornitori di servizi.
- Esportare dati aziendali in CSV, Excel, Google Sheets, CRM o workflow Apify.
- Eseguire estrazioni di grandi dimensioni basate su più ricerche, senza che i record duplicati incidano sui limiti o sul budget di fatturazione.
L’Actor è pensato come generatore di dataset di lead aziendali italiani, non come scraper generico. Ogni riga salvata è quindi strutturata per facilitare analisi, filtri e workflow successivi.
Funzionalità principali
- Input semplice e combinabile — inserisci categorie e località, URL diretti dei risultati di ricerca di PagineGialle oppure entrambi. L’Actor prepara automaticamente gli URL di partenza.
- Adatto a esecuzioni lunghe — combina numerose categorie, località, CAP e URL in un’unica esecuzione, con limiti per query, limiti globali, deduplicazione e riepiloghi finali.
- Deduplicazione automatica — attiva per impostazione predefinita in ogni esecuzione e basata sugli identificatori univoci dei profili aziendali di PagineGialle.
- Fatturazione successiva alla deduplicazione — quando la deduplicazione è attiva, i duplicati ignorati non vengono salvati nel dataset e non vengono addebitati come risultati.
- Output semplice e pronto all’uso — un record aziendale per ogni riga del dataset, ideale per CSV, Excel, Google Sheets e importazioni nei CRM.
- Indicatori sulla qualità dei contatti — filtra rapidamente i record in base alla presenza di email, telefono, cellulare, WhatsApp, sito web, profili social o alla possibilità complessiva di contattare l’azienda.
- Limiti flessibili sui risultati — controlla il numero massimo di aziende salvate nell’intera esecuzione o per ciascuna query.
- Estrazione affidabile — paginazione automatica, rotazione dei proxy e mitigazione dei blocchi.
Come estrarre dati da PagineGialle
- Inserisci una o più categorie aziendali e località, incolla gli URL dei risultati di ricerca di PagineGialle oppure combina le due opzioni.
- Configura facoltativamente
maxItems,maxItemsPerQueryededuplicateResults. - Avvia l’Actor dalla Console Apify o tramite API.
- Scarica i lead aziendali ottenuti in JSON, CSV, Excel, XML o in un altro formato supportato dal dataset.
Configurazione dell’input
| Campo | Tipo | Descrizione |
|---|---|---|
categories | array | Categorie aziendali in italiano, ad esempio "dentisti", "avvocati" o "ristoranti". Deve essere usato insieme a locations, a meno che non venga fornito anche searchUrls. |
locations | array | Località espresse come nomi di città, sigle di provincia o CAP, ad esempio "Roma", "MI" o "00121". Deve essere usato insieme a categories, a meno che non venga fornito searchUrls. |
searchUrls | array | URL dei risultati di ricerca di PagineGialle. Può essere usato da solo o insieme a categories e locations. Nel secondo caso, i risultati vengono combinati e le voci sovrapposte vengono deduplicate per impostazione predefinita. |
maxItems | integer | Numero massimo di aziende salvate nell’intera esecuzione. Usa 0 per non impostare un limite globale. Valore predefinito: 0. |
maxItemsPerQuery | integer | Numero massimo di aziende salvate per ogni coppia categoria/località o per ogni URL di ricerca diretto. Usa 0 per non impostare un limite per query. Valore predefinito: 0. |
deduplicateResults | boolean | Rimuove i profili PagineGialle duplicati all’interno dell’esecuzione corrente. Valore predefinito: true. |
Le combinazioni di input valide sono:
categories+locationssearchUrlscategories+locations+searchUrls
Ogni categoria viene combinata con ogni località. Ad esempio, due categorie e tre località generano sei ricerche separate. I risultati sovrapposti vengono deduplicati per impostazione predefinita.
Per searchUrls, usa gli URL dei risultati di ricerca copiati dal browser.
Esempio di input
{"categories": ["dentisti", "commercialisti"],"locations": ["Roma", "00121"],"searchUrls": ["https://www.paginegialle.it/ricerca/avvocati/milano"],"maxItems": 500,"maxItemsPerQuery": 100,"deduplicateResults": true}
Quali dati può estrarre l’Actor?
| Gruppo di dati | Esempi di campi |
|---|---|
| Informazioni aziendali | nome dell’azienda, categoria, descrizione |
| Dati di contatto | email principale, tutte le email, numeri di telefono, telefono secondario, numeri WhatsApp |
| Presenza online | sito web, dominio, Facebook, Instagram, TikTok |
| Località | indirizzo, CAP, città, provincia, regione, Paese, latitudine, longitudine |
| Recensioni | valutazione media, numero di valutazioni |
| Indicatori di qualità del lead | presenza di email, telefono, cellulare, WhatsApp, sito web, profilo social, stato di contattabilità |
| Attribuzione della query | categoria di input, località di input, tipo di query, ID della query, URL di ricerca di origine |
| Metadati della fonte | URL del profilo PagineGialle, ID del profilo, pagina di origine, numero di pagina, data e ora di estrazione |
I campi scalari possono essere null quando PagineGialle non fornisce alcun valore. I campi che contengono liste, come emails, phones, whatsapps e contact_channels, vengono restituiti come array e possono essere vuoti.
has_mobile_phone usa un criterio prudente per riconoscere i numeri di cellulare italiani e può restituire false quando un numero non viene identificato con sufficiente certezza.
is_contactable è true quando l’azienda dispone di almeno un indirizzo email, numero di telefono, contatto WhatsApp o sito web. La sola presenza di un profilo social non attiva questo indicatore.
Esempio di output
{"company_name": "Monti Studio","business_category": "Studi commercialisti","description": "Lo STUDIO MONTI fornisce ai propri clienti servizi professionali in materia fiscale e del lavoro.","website": "https://www.montistudio.eu","website_domain": "montistudio.eu","email": "info@montistudio.it","emails": ["info@montistudio.it"],"phone": "06 5812270","phones": ["06 5812270", "333 7430257"],"secondary_phone": "333 7430257","whatsapp": "333 7430257","whatsapps": ["333 7430257"],"address": "Via Costanza Baudana Vaccolini, 5","postcode": "00153","city": "Roma","province": "RM","region": "Lazio","country": "Italy","latitude": 41.87813,"longitude": 12.46669,"rating_average": 5,"rating_count": 3,"profile_url": "https://www.paginegialle.it/montistudioroma","profile_id": "0ec6b49e-c36e-41f4-9221-79797f606906","logo_url": "https://img.italiaonline.it/0WO5p000003g9yRGAQ/IOL4YOU_LOGO_1647186095662.gif","facebook_url": "https://www.facebook.com/montistudio.roma/","instagram_url": null,"tiktok_url": null,"has_email": true,"has_phone": true,"has_mobile_phone": true,"has_whatsapp": true,"has_website": true,"has_social": true,"is_contactable": true,"contact_channels": ["email", "phone", "whatsapp", "website"],"query_category": "commercialisti","query_location": "Roma","query_input_type": "category_location","query_strategy": "category_location","query_id": "category_location:commercialisti:roma","query_search_url": "https://www.paginegialle.it/ricerca/commercialisti/Roma","source": "paginegialle.it","search_url": "https://www.paginegialle.it/ricerca/commercialisti/Roma","source_page_number": 1,"scraped_at": "2026-07-02T10:00:00.000Z"}
Deduplicazione, limiti e fatturazione
La deduplicazione è attiva per impostazione predefinita e si applica all’interno di una singola esecuzione.
L’Actor identifica i duplicati utilizzando gli identificatori univoci di PagineGialle:
profile_idprofile_urlnormalizzato
Il primo record corrispondente viene salvato. Gli eventuali duplicati individuati in seguito vengono ignorati e i relativi dati non vengono uniti al record già esistente.
L’Actor non deduplica i record in base al nome dell’azienda, al numero di telefono, all’indirizzo, all’email o al dominio del sito web. I record privi di un identificatore univoco del profilo non possono essere deduplicati in modo sicuro e vengono quindi considerati unici.
Quando la deduplicazione è attiva, i duplicati ignorati:
- non vengono salvati nel dataset;
- non vengono addebitati;
- non vengono conteggiati in
maxItems; - non vengono conteggiati in
maxItemsPerQuery.
La fatturazione si applica quindi esclusivamente ai record aziendali finali che rispettano i limiti impostati, superano i controlli di deduplicazione e vengono salvati correttamente nel dataset.
maxItems controlla il numero totale di aziende salvate nell’intera esecuzione.
maxItemsPerQuery si applica separatamente a ogni coppia categoria/località e a ogni URL di ricerca diretto. È utile per distribuire in modo equilibrato la copertura tra più ricerche.
La deduplicazione non viene mantenuta tra esecuzioni separate dell’Actor. Se deduplicateResults è disattivato, i record duplicati possono essere salvati, conteggiati nei limiti e addebitati normalmente.
Riepilogo dell’esecuzione e stato della deduplicazione
Il dataset dei risultati contiene esclusivamente record aziendali.
I metadati dell’esecuzione vengono salvati separatamente nel key-value store predefinito:
RUN_SUMMARY— conteggi delle query, record salvati, duplicati rimossi, copertura dei contatti, limiti e statistiche sugli errori.DEDUPE_STATE— snapshot dello stato di deduplicazione dell’esecuzione corrente.
Questi record non vengono aggiunti al dataset, non compaiono tra i lead aziendali e non vengono addebitati come risultati del dataset.
DEDUPE_STATE è utile per monitorare le esecuzioni lunghe.
Suggerimenti per aumentare la copertura
- Usa più CAP per coprire con maggiore precisione una grande città.
- Incolla URL di ricerca di PagineGialle con filtri specifici quando vuoi controllare direttamente la ricerca di origine.
- Combina, nella stessa esecuzione, le ricerche generate da categorie e località con gli URL diretti.
- Usa
maxItemsPerQueryper distribuire i risultati in modo più uniforme tra numerose ricerche. - Usa
maxItemsper controllare il numero totale di record salvati e il budget complessivo. - Mantieni
deduplicateResultsattivo nelle esecuzioni di grandi dimensioni, con località sovrapposte o più aree geografiche.
Una ricerca generica su PagineGialle può mostrare un massimo di 200 risultati. Suddividere una grande città per CAP oppure usare URL di ricerca specifici e filtrati può aumentare la copertura. In presenza di sovrapposizioni, la deduplicazione impedisce che gli stessi profili vengano salvati e addebitati più volte nella stessa esecuzione.
Domande frequenti
Posso estrarre più di 200 risultati da PagineGialle?
Sì, aumentando la copertura con più CAP o URL di ricerca specifici e filtrati.
L’Actor esegue ogni ricerca separatamente e, se la deduplicazione è attiva, ignora i profili già trovati. Non suddivide automaticamente le città in CAP, quartieri o altre aree.
Posso combinare categorie, località e URL di ricerca diretti?
Sì. L’Actor elabora nella stessa esecuzione sia le ricerche basate su categorie e località sia quelle definite tramite searchUrls.
Quando deduplicateResults è attivo, i profili sovrapposti vengono deduplicati.
Come funziona la deduplicazione?
È attiva per impostazione predefinita e opera all’interno dell’esecuzione corrente.
Usa profile_id e profile_url normalizzato. Salva il primo record e ignora quelli corrispondenti trovati successivamente, senza eseguire confronti approssimativi né unire i relativi dati di contatto.
I risultati duplicati vengono addebitati?
No, se deduplicateResults è attivo.
I duplicati vengono ignorati prima del salvataggio e non vengono aggiunti al dataset né addebitati. Se la deduplicazione è disattivata, possono invece essere salvati e addebitati normalmente.
Questo Actor arricchisce le aziende utilizzando siti web esterni?
No. Estrae esclusivamente i dati disponibili nelle schede di PagineGialle.
Non richiama Actor esterni e non usa database di lead di terze parti. Il dataset può comunque essere usato in seguito come input per workflow di arricchimento separati.
È legale estrarre dati da PagineGialle?
L’Actor estrae informazioni accessibili pubblicamente, ma sei responsabile di come raccogli, conservi e utilizzi i dati.
I record possono contenere dati personali protetti dal GDPR o da altre normative. Assicurati che il tuo caso d’uso abbia una base giuridica valida e rispetti le leggi applicabili.
Manutenzione e supporto
Questo Actor viene mantenuto attivamente.
- 📬 Contatta lo sviluppatore
- 🐞 Segnala un bug o un problema
- ✨ Richiedi una funzionalità o uno scraper personalizzato
🇮🇹 Italian version above.
🇬🇧 English version below.
Pagine Gialle Scraper — Italian Business Leads Scraper 🇮🇹
Extract structured business leads from PagineGialle.it, Italy’s Yellow Pages directory.
Enter categories and locations, paste specific PagineGialle search-result URLs, or combine both input methods. The Actor returns lead-ready business records with automatic deduplication, contactability flags, query-source metadata, and global or per-query result limits.
Designed for reliable long-running jobs, it can process many categories, locations, Italian postal codes (CAPs), and direct search URLs in a single run while keeping the final dataset clean. When deduplication is enabled, only unique business records successfully saved to the dataset are billed.
Why use this Pagine Gialle scraper?
Use the Actor to:
- Build Italian B2B lead lists.
- Collect publicly listed email addresses, phone numbers, WhatsApp contacts, websites, and social profiles.
- Research local markets, competitors, and service providers.
- Export business data to CSV, Excel, Google Sheets, CRMs, or Apify workflows.
- Run large multi-query extractions without duplicate records counting toward your limits or billing budget.
The Actor is designed as a dataset builder for Italian business leads rather than as a generic scraper. Each saved row is therefore structured for analysis, filtering, and downstream workflows.
Key features
- Simple, combinable input — provide categories and locations, direct PagineGialle search URLs, or both. No mode selection is required.
- Designed for long runs — combine many categories, locations, CAPs, and URLs in a single run, with per-query limits, global limits, deduplication, and run summaries.
- Automatic deduplication — enabled by default within each run and based on reliable PagineGialle profile identifiers.
- Billing after deduplication — when deduplication is enabled, skipped duplicates are not saved to the dataset and are not billed as results.
- Lead-ready output — each dataset row contains one business record, suitable for CSV, Excel, Google Sheets, and CRM imports.
- Contactability flags — quickly filter records by the presence of email, phone, mobile phone, WhatsApp, website, social profiles, or overall contactability.
- Flexible result limits — control the maximum number of businesses saved across the entire run or for each individual query.
- Reliable extraction — automatic pagination, proxy rotation, and blocking mitigation.
How to scrape PagineGialle
- Enter one or more business categories and locations, paste direct PagineGialle search-result URLs, or combine both options.
- Optionally configure
maxItems,maxItemsPerQuery, anddeduplicateResults. - Run the Actor from Apify Console or through the API.
- Download the resulting business leads in JSON, CSV, Excel, XML, or another dataset-supported format.
Input configuration
| Field | Type | Description |
|---|---|---|
categories | array | Business categories in Italian, such as "dentisti", "avvocati", or "ristoranti". Must be used together with locations, unless searchUrls is also provided. |
locations | array | Locations such as city names, province codes, or CAPs/postcodes, for example "Roma", "MI", or "00121". Must be used together with categories, unless searchUrls is provided. |
searchUrls | array | PagineGialle search-result URLs. Can be used on their own or together with categories and locations. When combined, all results are processed together and overlapping entries are automatically deduplicated when the feature is enabled. |
maxItems | integer | Maximum number of businesses saved across the entire run. Use 0 for no global limit. Default: 0. |
maxItemsPerQuery | integer | Maximum number of businesses saved for each category/location pair or direct search URL. Use 0 for no per-query limit. Default: 0. |
deduplicateResults | boolean | Removes duplicate PagineGialle profiles within the current run. Default: true. |
Valid input patterns are:
categories+locationssearchUrlscategories+locations+searchUrls
Each category is combined with each location. For example, two categories and three locations generate six separate searches. Overlapping results are deduplicated by default.
For searchUrls, use search-result URLs copied from your browser.
Input example
{"categories": ["dentisti", "commercialisti"],"locations": ["Roma", "00121"],"searchUrls": ["https://www.paginegialle.it/ricerca/avvocati/milano"],"maxItems": 500,"maxItemsPerQuery": 100,"deduplicateResults": true}
What data can the Actor extract?
| Data group | Example fields |
|---|---|
| Business details | company name, business category, description |
| Contact data | primary email, all emails, phone numbers, secondary phone, WhatsApp numbers |
| Online presence | website, website domain, Facebook, Instagram, TikTok |
| Location | address, CAP, city, province, region, country, latitude, longitude |
| Ratings | average rating, rating count |
| Lead-quality flags | has email, phone, mobile phone, WhatsApp, website, social profile, contactable status |
| Query attribution | input category, input location, query type, query ID, originating search URL |
| Source metadata | PagineGialle profile URL, profile ID, source page, page number, scrape timestamp |
Scalar fields may be null when PagineGialle does not provide a value. Collection fields such as emails, phones, whatsapps, and contact_channels are returned as arrays and may be empty.
has_mobile_phone uses a conservative heuristic for identifying Italian mobile numbers and may return false when a number cannot be identified with sufficient confidence.
is_contactable is true when the business has at least one email address, phone number, WhatsApp number, or website. A social profile alone does not set this flag.
Output example
{"company_name": "Monti Studio","business_category": "Studi commercialisti","description": "Lo STUDIO MONTI fornisce ai propri clienti servizi professionali in materia fiscale e del lavoro.","website": "https://www.montistudio.eu","website_domain": "montistudio.eu","email": "info@montistudio.it","emails": ["info@montistudio.it"],"phone": "06 5812270","phones": ["06 5812270", "333 7430257"],"secondary_phone": "333 7430257","whatsapp": "333 7430257","whatsapps": ["333 7430257"],"address": "Via Costanza Baudana Vaccolini, 5","postcode": "00153","city": "Roma","province": "RM","region": "Lazio","country": "Italy","latitude": 41.87813,"longitude": 12.46669,"rating_average": 5,"rating_count": 3,"profile_url": "https://www.paginegialle.it/montistudioroma","profile_id": "0ec6b49e-c36e-41f4-9221-79797f606906","logo_url": "https://img.italiaonline.it/0WO5p000003g9yRGAQ/IOL4YOU_LOGO_1647186095662.gif","facebook_url": "https://www.facebook.com/montistudio.roma/","instagram_url": null,"tiktok_url": null,"has_email": true,"has_phone": true,"has_mobile_phone": true,"has_whatsapp": true,"has_website": true,"has_social": true,"is_contactable": true,"contact_channels": ["email", "phone", "whatsapp", "website"],"query_category": "commercialisti","query_location": "Roma","query_input_type": "category_location","query_strategy": "category_location","query_id": "category_location:commercialisti:roma","query_search_url": "https://www.paginegialle.it/ricerca/commercialisti/Roma","source": "paginegialle.it","search_url": "https://www.paginegialle.it/ricerca/commercialisti/Roma","source_page_number": 1,"scraped_at": "2026-07-02T10:00:00.000Z"}
Deduplication, limits, and billing
Deduplication is enabled by default and applies within a single run.
The Actor identifies duplicates using reliable PagineGialle profile identifiers:
profile_id- normalized
profile_url
The first matching record is saved. Any matching records found later are skipped rather than merged.
The Actor does not deduplicate records by company name, phone number, address, email, or website domain. Records without a reliable profile identifier cannot be safely deduplicated and are therefore treated as unique.
When deduplication is enabled, skipped duplicates:
- are not saved to the dataset;
- are not billed as saved results;
- do not count toward
maxItems; - do not count toward
maxItemsPerQuery.
Billing therefore applies only to final business records that remain after deduplication and limit checks and are successfully saved to the dataset.
maxItems controls the total number of businesses saved across the entire run.
maxItemsPerQuery applies separately to each category/location pair and each direct search URL. It is useful for distributing coverage more evenly across multiple searches.
Deduplication does not persist across separate Actor runs. If deduplicateResults is disabled, duplicate records may be saved, counted toward limits, and billed normally.
Run summary and deduplication state
The default dataset contains business records only.
Run metadata is stored separately in the default key-value store:
RUN_SUMMARY— query counts, saved records, duplicates removed, contact coverage, limits, and failure statistics.DEDUPE_STATE— a snapshot of the deduplication state for the current run.
These records are not added to the dataset, do not appear as business leads, and are not billed as dataset results.
DEDUPE_STATE is useful for monitoring long-running jobs.
Tips for better coverage
- Use multiple CAPs to cover a large city more precisely.
- Paste specific filtered PagineGialle search URLs when you need full control over the original search.
- Combine generated category/location searches with direct URLs in the same run.
- Use
maxItemsPerQueryto distribute results more evenly across multiple searches. - Use
maxItemsto control the total number of saved records and your overall budget. - Keep
deduplicateResultsenabled for large runs involving overlapping locations or multiple geographic areas.
A broad PagineGialle search may return only a limited number of results. Using multiple CAPs or specific filtered search URLs can increase coverage. When searches overlap, deduplication prevents the same PagineGialle profiles from being saved and billed more than once within the same run.
Frequently asked questions
Can I scrape more than 200 PagineGialle results?
Yes. Use multiple CAPs or specific filtered search URLs to increase coverage.
The Actor runs each search separately and skips repeated profiles when deduplication is enabled. It does not automatically divide cities into CAPs, districts, or other areas.
Can I combine categories, locations, and direct search URLs?
Yes. The Actor processes category/location searches and searchUrls in the same run.
When deduplicateResults is enabled, overlapping profiles are deduplicated.
How does deduplication work?
It is enabled by default and applies within the current run.
The Actor uses profile_id and normalized profile_url, saves the first matching record, and skips later duplicates. It does not use fuzzy matching or merge contact details.
Are duplicate results billed?
No, when deduplicateResults is enabled.
Duplicates are skipped before being saved and are not billed. If deduplication is disabled, duplicate records may be saved and billed normally.
Does this Actor enrich businesses using external websites?
No. It extracts only the data available in PagineGialle listings.
It does not call external enrichment Actors or third-party lead databases. The resulting dataset can still be used later as input for separate enrichment workflows.
Is it legal to scrape PagineGialle?
The Actor extracts publicly accessible information, but you are responsible for how you collect, store, and use the data.
Business records may contain personal data protected by the GDPR or other regulations. Make sure your use case has a lawful basis and complies with applicable laws.
Maintenance and support
This Actor is actively maintained.