A robust, 2-stage hybrid web scraper designed to extract USA QuickBooks ProAdvisor contact information while bypassing complex anti-bot protection (Akamai / reCAPTCHA).
- Stage 1 (GraphQL API): Queries Intuit's matchmaking API directly using
requestsfor fast base-data extraction (Name, Address, Tier, Search ID). - Stage 2 (Stealth Playwright Engine): Launches a persistent browser context to extract dynamic fields (Phone numbers, external Websites) hidden behind UI toggles.
- Async CAPTCHA Handling: Uses an asynchronous event loop (
asyncio.sleep) to prevent thread freezes, allowing manual/automated reCAPTCHA solving without losing session state or triggering network timeouts. - Deduplication Engine: Normalizes and parses raw text blocks using Regex to produce clean, CRM-ready phone number strings.
- Python 3.8+
- Node.js (required for Playwright browser binaries)
- Clone the repository:
git clone https://github.com/MilanGole/proadvisor-intuit-scraper.git
cd proadvisor-intuit-scraper- Set up a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt
playwright installRun the main scraper script:
python proadvisor_scraper.py-
The script queries the GraphQL API to retrieve profile metadata.
-
It opens a Playwright browser instance to scrape phone numbers and external links.
-
CAPTCHA handling: If reCAPTCHA appears, solve it directly in the open browser window. The script automatically detects completion and resumes scraping.
-
Results are saved automatically to
Brooklyn_10_ProAdvisors_Complete.csv.
Data is saved in CSV format with the following structure:
| Column | Description |
|---|---|
Name |
Full name of the ProAdvisor |
Company |
Business / practice name |
Address |
Street, locality, or ZIP address |
City |
City location |
State |
US State code |
Phone |
Cleaned and deduplicated phone numbers |
Email |
Contact email address (N/A if unavailable) |
Website |
External business website URL |
Tier |
QuickBooks certifications held (QBO, QBDT, etc.) |
Profile Link |
Direct link to the ProAdvisor profile |