August 16, 2026 · 10 min read
PagineGialle Scraper: Extraction Guide for Italian Commercial
Direct answer
PagineGialle Scraper is an Apify actor designed to harvest structured commercial records from PagineGialle.it without requiring site logins or API keys. The actor operates through search mode, which queries specific categories across Italian cities, comuni, or 5-digit postal codes (CAP), and detail mode, which processes target business profile URLs directly. Enabling fetchDetails instructs the scraper to open each profile page to gather precise ratings, weekly opening hours, Italian VAT numbers (Partita IVA), and social media accounts. The collected dataset serves B2B sales development, regional market density evaluation, and local search directory building.
Practical use cases
These use cases come from PagineGialle Scraper - Italian Business Directory's published documentation. Each is expanded into an operating pattern so the PagineGialle Scraper - Italian Business Directory output has a purpose beyond collection.
Use case 1: Local lead generation
Outcome: build a prospect list of Italian businesses by trade and city for B2B outreach.
Question to answer: Which candidates clear every hard requirement, and which evidence field justifies each one that does?
Configure: Start with category (Business category to search for. Pick a common category, or choose 'Custom category' and type your own slug below (mode=search).), mode (What to fetch: search a category + city, or fetch full business profiles from direct URLs.), city (Italian city, town (comune), or 5-digit postal code (CAP) to search in, e.g. 'Roma', 'Milano', 'Napoli', or '20121' (mode=search).). Use the narrowest PagineGialle Scraper - Italian Business Directory values that represent the real task, keep the first result set small, and record why each selected input matters to the PagineGialle Scraper - Italian Business Directory outcome.
Working method: Write the qualification rule down before looking at a single record, then sort candidates into qualified, needs research, and excluded with the reason recorded next to each one. Treat the result as research input, not permission to contact anyone.
Deliverable: Create a triaged research list where every qualified entry cites the specific field that qualified it. Include the PagineGialle Scraper - Italian Business Directory source identifier and the collected fields behind every PagineGialle Scraper - Italian Business Directory decision.
Stop condition: Pause when the qualification rule keeps shifting between batches, key identifying fields are missing, or the list is being treated as a contact list rather than research. Fix the PagineGialle Scraper - Italian Business Directory question, comparison rule, or configuration before expanding the PagineGialle Scraper - Italian Business Directory run.
Use case 2: Market research
Outcome: measure business density and average ratings for a category across Italian cities.
Question to answer: After grouping fairly, which gaps are large enough to matter, and which are within normal variation?
Configure: Start with category (Business category to search for. Pick a common category, or choose 'Custom category' and type your own slug below (mode=search).), fetchDetails (For each search result, also visit its business profile page to collect the precise rating, structured opening hours, website, VAT number and social links. Slower but much richer (mode=search). When off, results still include name, address, phone, category and rating derived from the listing page.), mode (What to fetch: search a category + city, or fetch full business profiles from direct URLs.). Use the narrowest PagineGialle Scraper - Italian Business Directory values that represent the real task, keep the first result set small, and record why each selected input matters to the PagineGialle Scraper - Italian Business Directory outcome.
Working method: Decide the comparison axis first, then place every record into a cohort before looking at outcomes. Keep raw and normalized values side by side, and review the records that do not fit any cohort instead of dropping them.
Deliverable: Create a cohort-by-cohort summary with the raw and normalized figures, the outliers, and what each gap would mean for the decision. Include the PagineGialle Scraper - Italian Business Directory source identifier and the collected fields behind every PagineGialle Scraper - Italian Business Directory decision.
Stop condition: Pause when a cohort has too few records to compare fairly, the normalization hides a real difference, or the comparison is being driven by one outlier. Fix the PagineGialle Scraper - Italian Business Directory question, comparison rule, or configuration before expanding the PagineGialle Scraper - Italian Business Directory run.
Use case 3: Directory aggregation
Outcome: feed structured Italian business data into your own local-search product.
Question to answer: Once near-duplicates are grouped, which stories actually add something new for the audience?
Configure: Start with category (Business category to search for. Pick a common category, or choose 'Custom category' and type your own slug below (mode=search).), fetchDetails (For each search result, also visit its business profile page to collect the precise rating, structured opening hours, website, VAT number and social links. Slower but much richer (mode=search). When off, results still include name, address, phone, category and rating derived from the listing page.), mode (What to fetch: search a category + city, or fetch full business profiles from direct URLs.). Use the narrowest PagineGialle Scraper - Italian Business Directory values that represent the real task, keep the first result set small, and record why each selected input matters to the PagineGialle Scraper - Italian Business Directory outcome.
Working method: Score each candidate item on audience fit, novelty, and source diversity before selecting anything, and group near-duplicate items so only the strongest version of a story gets chosen.
Deliverable: Create a curation sheet listing selected items, their angle, and the near-duplicate cluster each one was chosen from. Include the PagineGialle Scraper - Italian Business Directory source identifier and the collected fields behind every PagineGialle Scraper - Italian Business Directory decision.
Stop condition: Pause when the same handful of sources dominate every batch, novelty cannot be judged against recent history, or duplicate stories are being counted as separate items. Fix the PagineGialle Scraper - Italian Business Directory question, comparison rule, or configuration before expanding the PagineGialle Scraper - Italian Business Directory run.
Operational workflow for Italian directory extraction
- Define target strategy and input mode: Choose search mode to discover businesses by category and location, or select detail mode to scrape specific profile pages provided in the businessUrls array.
- Parameterize filters and location constraints: Specify a standard category from the curated menu or enter a free-text slug in customCategory. Set location criteria in city using city names like Roma or 5-digit CAP codes like 00100. Apply filters such as minRating, openNowOnly, or websiteOnly as required.
- Configure detail depth and execution limits: Leave fetchDetails set to true to capture rich profile attributes including VAT numbers and social links, or disable it for rapid listing-only ingestion. Set maxItems between 1 and 1000 to cap total dataset records.
- Execute run and ingest structured output: Launch the actor on Apify.
Search parameters and input options
The actor accepts a flexible set of configuration parameters designed for broad discovery or targeted retrieval:
- mode: String option accepting search (default) for category and location discovery, or detail for direct business profile harvesting via URLs.
- category: Select input listing over 60 common Italian trades including ristoranti, avvocati, commercialisti, dentisti, idraulici, and farmacie. Choosing custom instructs the actor to use customCategory.
- customCategory: Free-text string accepting custom category slugs such as traduttori or fisioterapisti-sportivi. Overrides category when populated.
- city: Location query accepting Italian city names, comuni, or 5-digit postal codes (CAP) like Roma, Milano, Napoli, or 20121.
- fetchDetails: Boolean parameter (default true). Visits individual profile pages to gather exact decimal ratings, structured weekly opening hours, Italian VAT numbers (vatNumber), and socialLinks. Setting to false speeds up execution by returning listing-page fields only.
- openNowOnly: Boolean filter restricting output to businesses currently open, calculated at scrape time against published schedules in Europe/Rome local time.
- ratedOnly: Boolean filter restricting output to businesses with at least one customer review.
- minRating: Rating filter accepting values from 1 to 5 stars to enforce quality thresholds.
- sortBy: Search ordering matching PagineGialle dropdown options (relevance, distance, or popularity).
- websiteOnly: Boolean filter restricting output to listings that feature an official website URL.
- businessUrls: Array of target PagineGialle profile URL objects used when mode is set to detail.
- maxItems: Integer capping total returned business records between 1 and 1000.
Data schema and exported attributes
Every exported business record includes clean JSON attributes tailored for database ingestion:
- Primary identity attributes: name, category, description, recordType ("business"), scrapedAt, and canonical sourceUrl.
- Geographic indicators: street, zipCode, city, province, region, and combined string address.
- Communication channels: Primary phone, additional numbers in phoneNumbers array, and official website.
- Reputation metrics: Floating-point star rating and integer reviewCount.
- Extended profile details (with fetchDetails: true): Italian VAT number (vatNumber), socialLinks object (mapping Facebook, Instagram, Twitter, LinkedIn, YouTube, and TikTok), and openingHours (structured day-by-day time slots).
- Real-time status: isOpenNow boolean calculated from published weekly schedules.
Missing listing attributes are excluded entirely from output objects rather than populated with null or empty string values, allowing parsers to rely on simple key existence checks.
Network requirements and edge behavior
Operating scrapers against Italian directory infrastructure requires understanding specific operational dynamics:
- Pagination bounds: Broad category searches in major cities reach native directory pagination caps after several pages, where PagineGialle repeats previously displayed records. The scraper automatically detects duplicate listing streams and terminates the run cleanly without wasting compute units. Narrowing searches with 5-digit CAP postal codes yields more complete coverage across dense urban zones.
- Contact channel limits: PagineGialle does not publish email addresses on public listings or profile pages, offering only web-based inquiry forms. The scraper never fabricates email fields.
- Geo-restriction handling: PagineGialle enforces CDN edge geolocation rules that block direct browser navigation to sourceUrl links from IP addresses outside Italy, returning a 403 status code. The actor executes on Apify cloud infrastructure without issue, and extracted business website links remain globally accessible without restrictions.
- Character encoding and proxies: Scraped data maintains full support for accented Italian characters (à, è, ì, ò, ù) and apostrophes. Standard runs do not require custom proxies, as the actor automatically utilizes Apify datacenter proxies pinned to Italian IP addresses if rate limiting occurs.
Frequently asked questions
Is an account or API key required to run PagineGialle Scraper?
No account, login, or API key is required. The actor scrapes publicly accessible search pages and business profiles directly from PagineGialle.it.
How does rating accuracy differ between search modes?
When fetchDetails is enabled, the actor extracts the exact 1-decimal rating text published on the business profile page. In listing-only mode (fetchDetails: false), ratings are derived from the visual star fill percentage on search results, truncated to one decimal place.
Why are certain fields omitted from exported JSON records?
PagineGialle only displays ratings for businesses that have received customer reviews and only includes contact fields supplied by business owners. To maintain clean schemas, the scraper omits missing fields rather than outputting null values or empty strings.
Can target queries use postal codes instead of city names?
Yes. The city input accepts 5-digit Italian postal codes (CAP) such as 00100 or 20121 alongside standard municipal names like Roma or Milano.
How is business open status calculated by the openNowOnly filter?
The openNowOnly filter computes current business status live at execution time by evaluating published weekly schedules against Europe/Rome local time. Listings without published opening hours are automatically excluded when this filter is enabled.
Resources
● Featured actors
PagineGialle Scraper - Italian Business Directory
Scrape PagineGialle.it (Italy's leading business directory). Search by category and city/comune, or fetch full business profiles by URL. Get names, addresses, phone numbers, categories, ratings, opening hours, and websites.
Run on Apify ↗