A collection of scripts for scraping ZoomInfo data (profiles, companies, search results, universal) in Python and NodeJS.
This repo contains:
- Profile Scrapers – scrape individual ZoomInfo profiles.
- Company Scrapers – scrape company pages.
- Search Scrapers – scrape multiple search result pages (up to 5 pages).
- Universal Scrapers – flexible scripts to scrape any ZoomInfo page. Supports optional proxies.
Each language has its own folder with scripts ready to run.
- Requirements
- Project Structure
- Python ZoomInfo Scrapers
- Node.js ZoomInfo Scrapers
- Notes
- More Resources
- Python 3.11+
- pip
- Node.js 21+
- npm or yarn
zoominfo-scraper/
│
├── Python/
│ ├── zoominfo-profile-scraper.py
│ ├── zoominfo-company-scraper.py
│ ├── zoominfo-search-scraper.py
│ ├── zoominfo-universal-scraper.py
│ └── zoominfo-universal-scraper-proxy.py
│
├── NodeJS/
│ ├── zoominfo-profile-scraper.js
│ ├── zoominfo-company-scraper.js
│ ├── zoominfo-search-scraper.js
│ ├── zoominfo-universal-scraper.js
│ └── zoominfo-universal-scraper-proxy.js
│
├── banner.png
└── README.md
This section contains Python scripts for scraping ZoomInfo profiles, companies, and search listings. Each script extracts JSON data from ZoomInfo pages and handles basic anti-bot measures like random delays.
| Script | Description |
|---|---|
zoominfo-profile-scraper.py |
Scrapes individual profile pages. Extracts JSON data and removes unnecessary internal keys. |
zoominfo-company-scraper.py |
Scrapes company pages. Collects company metadata and cleans JSON output. |
zoominfo-search-scraper.py |
Scrapes search listing pages with pagination. Handles multiple pages and stores all results in JSON. |
zoominfo-universal-scraper.py |
General-purpose scraper for any ZoomInfo URL (profile, company, search). |
zoominfo-universal-scraper-proxy.py |
Same as universal scraper but supports proxy authentication and usage. |
Notes:
- All scripts export data in JSON format.
- Random delays are used to reduce risk of blocks.
- Proxy support helps with rate-limits and IP bans.
- Can be adapted to scrape other sections of ZoomInfo by changing URLs.
This section contains Node.js scripts for ZoomInfo scraping. They follow the same pattern as the Python scripts. Each one extracts the JSON embedded in the page and waits a random delay between steps, and zoominfo-universal-scraper-proxy.js routes traffic through an authenticated proxy.
| Script | Description |
|---|---|
zoominfo-profile-scraper.js |
Scrapes individual profiles, extracts structured JSON data. |
zoominfo-company-scraper.js |
Scrapes company pages, exports metadata. |
zoominfo-search-scraper.js |
Scrapes search results with pagination. |
zoominfo-universal-scraper.js |
Universal scraper for any ZoomInfo URL. |
zoominfo-universal-scraper-proxy.js |
Adds proxy support to the universal scraper. |
Notes:
- Runs on Puppeteer. Install it with
npm install puppeteer, which also downloads the Chrome build it drives. - The scripts open a visible browser window (
headless: false). Setheadless: trueinpuppeteer.launchto run without it. - JSON output is ready for parsing or further processing.
- Proxy usage and residential proxy rotation is optional but recommended for large scraping tasks.
These scripts are for educational purposes only. Check ZoomInfo’s Terms of Service and legal guidance on web scraping.
- Use random delays to mimic human behavior and avoid blocks.
- Proxy support helps reduce rate limits and IP bans.
- Scrapers export data in JSON format, ready to parse for further use.
- Adjust max pages and URLs according to your scraping needs.
- Guide: The Complete Guide to ZoomInfo Scraping in Python
- Discord: Join the community
- Star this repo if helpful ⭐
