Email Crawler is a Python desktop and CLI tool for finding public email
addresses from a list of websites. It uses undetected-chromedriver with
Selenium so it can render JavaScript-heavy pages and keep the original Google
and Facebook fallback strategies.
- Tkinter GUI for pasting many websites and reviewing results.
- CLI for quick terminal runs.
- Uses
undetected-chromedriver. - Checks the main page, contact paths, clicked contact/support links, about
pages,
mailto:links, Facebook pages, and Google search results. - Optional headless Chrome mode.
- Configurable wait time and Chrome major version.
- Exclusion patterns for noisy addresses such as Sentry or example domains.
- Best-match mode or show-all mode.
- Python 3.10+
- Google Chrome installed
python -m venv .venvWindows PowerShell:
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtmacOS/Linux:
source .venv/bin/activate
pip install -r requirements.txtpython emailcrawlerGUI.pyOn Windows:
.\LaunchEmailCrawler.batBest match per website:
python email_crawler.py example.com --headlessAll matches:
python email_crawler.py example.com another-site.com --all --headlessForce a Chrome major version if UC cannot auto-detect it:
python email_crawler.py example.com --chrome-version-main 149Disable one fallback when debugging:
python email_crawler.py example.com --no-google
python email_crawler.py example.com --no-facebook.
├── email_crawler.py # Core Selenium/UC crawler and CLI
├── emailcrawlerGUI.py # Tkinter GUI
├── LaunchEmailCrawler.bat # Windows launcher
├── requirements.txt # Runtime dependencies
└── tests/ # Unit tests for parsing/ranking helpers
Run tests:
python -m unittest discover -s testsCompile-check:
python -m py_compile email_crawler.py emailcrawlerGUI.pyMIT. See LICENSE.