ANIMA.it Member Companies Scraper
Scrape member company data from the ANIMA Confindustria directory with full contact details, descriptions, product categories, and association info.
1. Overview
- Scrape all 17 data fields from every company listed on
en.anima.it/member-companies/. - Handle infinite scroll — automatically scrolls to trigger lazy loading, then collects detail-page URLs in batches.
- Concurrent processing — opens multiple detail pages in parallel (configurable tab limit).
- Extract names, addresses, phone numbers, emails, websites, descriptions (IT & EN), products, associations, technology, and images.
- Export all data to CSV for analysis in Excel or Google Sheets.
- Pro upgrade for full directory scraping with unlimited records and priority support.
Target site: https://en.anima.it/member-companies/ — the ANIMA Confindustria member directory listing over 700 Italian mechanical engineering companies.
2. Installation & First Launch
- Open Chrome and navigate to
chrome://extensions. - Enable Developer mode (top-right toggle).
- Click Load unpacked and select the extracted extension folder.
- Pin the extension icon for easy access.
- Open
https://en.anima.it/member-companies/in a tab first (to warm DNS/cookies). - Click the extension icon, adjust settings if needed, and click Start.
en.anima.it and www.anima.it. Grant these when prompted.3. How It Works
The scraper uses a screen-by-screen batch processing strategy:
- Opens the listing page in a background tab and waits for the initial companies to render.
- Scrolls to the absolute bottom of the page to trigger infinite-scroll loading.
- Uses a MutationObserver to detect when new company links appear (with retry logic up to 3 attempts per screen).
- Collects all newly visible company detail-page URLs (avoiding duplicates).
- Opens those detail pages in parallel (up to Concurrent Tabs setting) and extracts all 17 fields.
- Once all detail pages in the current batch are processed, scrolls down again for the next batch.
- Repeats until no new companies load or Max Scroll Cycles is reached.
- Collects any remaining detail pages and signals completion.
This approach is more reliable than collecting all links upfront because the listing page only renders ~19–20 companies at a time and relies on scroll-to-bottom triggers for lazy loading.
4. Controls
| Button | Action |
|---|---|
| Start | Begins a fresh scrape from scratch (clears previous links queue and results). |
| Pause | Suspends scraping after current detail pages finish processing. Keeps all collected data intact. |
| Resume | Continues scraping from where it was paused. |
| Stop | Immediately halts the scraper and closes all open scraper tabs. Collected data is preserved. |
| Export CSV | Downloads all scraped records as a CSV file with all 17 fields as columns. |
| Clear Data | Empties all stored scraped records from the extension. |
| Help | Opens this documentation page. |
5. Settings Reference
| Setting | Default | Description |
|---|---|---|
| Concurrent Tabs | 2 | Maximum number of detail pages to process simultaneously. Higher values complete faster but use more system resources. Recommended: 2–4. |
| Retry Attempts | 3 | Number of times to retry a detail page that fails to load within the timeout period. |
| Delay Min / Max | 450 / 1300 ms | Random delay range between scroll actions to mimic human browsing behaviour. Helps avoid rate limiting. |
| Max Scroll Cycles | 30 | Safety cap on the total number of scroll rounds. Prevents infinite loops if the page never finishes loading. Increase for very large directories. |
| Detail Timeout | 15000 ms | Maximum time (ms) to wait for a detail page to fully load before considering it failed and triggering a retry. |
| Smooth Scrolling | On | When enabled, uses CSS smooth scrolling behaviour. When disabled, uses instant jumps to the bottom. |
| Scroll Up Before Down | On | Scrolls up slightly before each scroll-down action. This can help trigger lazy-loading mechanisms that require viewport changes. |
6. Extracted Data Fields
The scraper extracts the following 17 fields from each company's detail page on www.anima.it/aziende/{slug}.kl:
| Field | Description | Source |
|---|---|---|
| Name | Company name | h1 heading |
| Address | Street address (e.g. VIA MOLINELLO 8/B) | First address line |
| PostalCode | 5-digit Italian postal code | Second address line (5 digits) |
| City | City name | Second address line (after postal code) |
| Province | 2-letter province abbreviation | Second address line (uppercase 2-letter) |
| Region | Italian region name | Third address line |
| Phone | Primary telephone number | tel: link |
| Fax | Fax number (if present) | Secondary tel: link |
| Email address | mailto: link | |
| Website | Company website URL (excludes social media domains) | External anchor href |
| DetailURL | Direct link to the company's ANIMA profile | Constructed from listing URL |
| DescriptionIT | Italian description text | Paragraph content |
| DescriptionEN | English description text (italicised sections) | Italic <em> or <i> paragraphs |
| Products | Product/service categories (semicolon-separated) | Anchor tags with href*="tag=" |
| Association | ANIMA member association | Label "Associazione" or "Association" |
| Technology | Technology / application area | Label "Tecnologia" or "Technology" |
| ImageURLs | Company image URLs (semicolon-separated) | Image tags in the detail page |
7. Recommended Workflow
- Test with defaults: Click Start with default settings. Let it run for 1–2 batches to verify extraction looks correct.
- Check Preview: Review captured data in the Preview tab to ensure all fields are populating correctly.
- Adjust concurrency: If your connection is fast, increase Concurrent Tabs to 3 or 4 for faster processing. If pages time out, reduce to 1–2.
- Run full scrape: Click Start again (this clears previous data) for a complete run. The scraper may take 15–40 minutes depending on the number of companies and your settings.
- Export: Once the status shows "Idle" and all records are collected, click Export CSV to download.
8. CSV Export
Exported CSV includes the following columns in order:
Name,Address,PostalCode,City,Province,Region,Phone,Fax,Email,Website,DetailURL,DescriptionIT,DescriptionEN,Products,Association,Technology,ImageURLs
The CSV uses comma delimiters, double-quoted fields, and proper escaping. Open directly in Excel or Google Sheets. The DetailURL column allows quick cross-referencing with the original listing.
9. Troubleshooting
9.1 No companies found or empty results
- Check that the listing page
en.anima.it/member-companies/loaded correctly. - Ensure you granted host permissions for both
en.anima.itandwww.anima.it. - If the page uses a "Load More" button instead of infinite scroll, this scraper won't detect it.
9.2 Detail pages timing out
- Increase Detail Timeout to 20000 or 30000 ms.
- Reduce Concurrent Tabs to 1 or 2 to reduce load.
- Check your internet connection speed.
9.3 Scraper stops collecting early
- Increase Max Scroll Cycles to 50 or higher. The full directory has many companies.
- Check that the listing page is actually scrolling to the bottom and loading more items.
9.4 Scraper not starting
- Open
chrome://extensions, ensure the extension is enabled, and reload the page. - Check the extension popup isn't being blocked.
9.5 Data not exporting
- Click Clear Data and re-run the scrape.
- Ensure at least one record has been collected.
10. Frequently Asked Questions
Does the scraper handle all companies on ANIMA.it?
It scrapes all companies visible on the en.anima.it/member-companies/ listing page. The listing uses infinite scroll and loads companies alphabetically. With sufficient Max Scroll Cycles, it should reach the end of the directory.
Can I use this while browsing normally?
Yes, but the scraper opens its own background tabs. Performance impact depends on Concurrent Tabs setting. Lower it to 1 if you need to browse smoothly.
What happens if my computer goes to sleep?
The scraper will pause when the tab becomes inactive. Click Resume when you return. Collected data is preserved in storage.
Is the data always accurate?
The scraper extracts exactly what is displayed on each company's detail page. Accuracy depends on the ANIMA members keeping their profiles up to date.
Does the Lite version have limitations?
Yes — the Lite build scrapes only the first screenful (approximately 19–20 companies) to verify functionality. The Pro license unlocks full directory scraping with all 17 fields and unlimited records.
11. Credits & Upgrade
Built by morkerr.com.
This is the Lite version of the ANIMA.it Scraper (limited batch). Upgrade to Pro for full directory scraping, all 17 fields, concurrent tab processing, and unrestricted CSV export.
Documentation v1.0 — June 2026