Solar Installer Lead Finder & Contact Extractor
Pricing
from $3.00 / 1,000 results
Solar Installer Lead Finder & Contact Extractor
Extract B2B leads from the top solar directory. Scrape installer details, phone numbers, brands, and certifications globally or by country. Features an optional enrichment engine that crawls company websites to uncover hidden email addresses and social media links
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
NoCodeNinja
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
ENF Solar Installer Scraper ☀️
ENF Solar Installer Scraper is a high-performance Apify Actor designed to extract comprehensive business intelligence from the global ENF Solar directory.
Built on top of Crawlee's CheerioCrawler, this actor systematically maps the directory structure, handles pagination, and—when enabled—performs advanced deep-web footprinting by visiting installer websites to uncover hidden contact details and social links.
🌟 Features
- Global or Targeted Crawling: Scrape the entire directory globally or target specific countries (e.g.,
Germany,United States). - Deep Profile Extraction: Look beyond the basic directory lists to pull granular info including corporate descriptions, battery storage capacities, installation sizes, certified brands, and year founded.
- Deep Website Enrichment: Goes past ENF's walled garden. It can directly visit the installer’s underlying website to discover hidden emails, communication routes, and social footprints.
- Intelligent Anti-Bot Footprint: Configurable execution delays and seamless Apify Proxy integration to easily bypass rigid
429 Too Many Requestsor IP rate limits. - Data Hygiene & Integrity: Automated URL normalization, query/hash filtering, and cross-field deduplication ensure your dataset remains clean and unique.
🛑 Important Data Scope Note
⚠️ Check Listing Volumes First: Directory density varies drastically by region on ENF Solar. Some large countries feature thousands of records, while others host only a handful. Before launching massive resource crawls, it is highly recommended to manually inspect the target country on the ENF Solar Directory to understand expected yields and establish logical budget thresholds.
📥 Input Settings
Configure the scraper easily using the interactive console UI or pass a custom JSON object directly.
| Field | Type | Default | Description |
|---|---|---|---|
countries | array | [] | Explicit country names to target (e.g., ["Germany", "Nigeria"]). Leave empty to crawl the entire world. |
maxPagesPerCountry | integer | 0 | Upper pagination boundary per country. 0 = Scrape every page available. |
maxResults | integer | 0 | Absolute item extraction ceiling. 0 = Run until queue exhaustion. |
scrapeProfiles | boolean | true | When active, visits ENF profile pages to grab detailed attributes (brands, sizes, phone numbers). |
enrichContacts | boolean | false | When true, safely exits ENF to crawl the target company's own website to scrape digital footprints. |
extractEmails | boolean | true | Requires enrichContacts. Dynamically parses target corporate pages for contact email strings. |
extractSocials | boolean | true | Requires enrichContacts. Scans for connected social ecosystems (LinkedIn, Facebook, etc.). |
maxWebsitePages | integer | 5 | Maximum internal link depth to follow per company site during contact enrichment (Range: 1-20). |
crawlSpeed | string | "Balanced" | Dynamic rate limiter configuration. Choose between Safe, Balanced, or Fast. |
useApifyProxy | boolean | true | Toggles Apify Datacenter/Residential proxy pools. Highly recommended to prevent blockades. |
Example Input Configuration
{"countries": ["Germany", "United States"],"maxPagesPerCountry": 10,"maxResults": 250,"scrapeProfiles": true,"enrichContacts": true,"extractEmails": true,"extractSocials": true,"maxWebsitePages": 5,"crawlSpeed": "Balanced","useApifyProxy": true}
📤 Output Dataset Structure
Extracted business records are written directly to your Apify Dataset storage. Missing fields indicate data points not publicly exposed by ENF Solar or the target business website.
{"companyId": "12345","companyName": "Example Solar Ltd.","profileUrl": "https://www.enfsolar.com/example-solar","website": "https://example.com","phone": "+1 555 123 4567","address": "123 Solar Street, City, Country","description": "Premium commercial solar installation provider specializing in grid-tied micro-inverter architectures.","emails": ["info@examplesolar.com", "sales@examplesolar.com"],"linkedinUrls": ["https://linkedin.com/company/example-solar"],"facebookUrls": ["https://facebook.com/examplesolar"],"brands": ["Brand A", "Brand B"],"certifications": ["ISO 9001"],"yearFounded": "2012","batteryStorage": "Yes","installationSizes": ["1MWp+ Installations"],"operatingCountries": ["Germany"],"sourceCountry": "Germany","scrapedAt": "2026-07-18T21:53:36.000Z"}
💡 Pro Tips & Advanced Tuning
- Mitigating 429 Bans: ENF Solar aggressively monitors high-concurrency loops. If your logs begin filling with
429 Too Many Requestsor timeout retries, change yourcrawlSpeedparameter to"Safe"or manually step down your concurrency options. - Web Enrichment Speeds: Enabling
enrichContactsexpands the scraper's target domain scope exponentially. While it produces significantly richer contact lists, it will increase overall execution runtime. Apply reasonablemaxWebsitePagesconstraints to balance data generation against execution cost.