I need a complete scrape of bbb.org that covers masonry, concrete, paving, demolition and landscape contractors across the entire United States. Every location carries the same weight—no state or region gets special treatment—so the crawl must move methodically through all ZIP codes or BBB market pages until coverage is truly nationwide. The final spreadsheet has to be delivered in Excel (.xlsx) format and include, for every business you capture, these columns: company name, contact person (when the BBB lists one), full street address, every phone number shown, and any email address the site provides. Because bbb.org often hides data behind pagination or pop-ups, I expect a robust scraping approach that can handle dynamic content (Selenium, Playwright, or similar) as well as polite rate-limiting so we stay within acceptable request volumes. Deduplication is essential—if the same company appears under multiple categories or listings, merge the records instead of inflating the count. Deliverables • One clean .xlsx file containing all requested fields, ready for filtering and analysis • A brief text log explaining the scraping workflow, libraries used (e.g., Python–Selenium/BeautifulSoup, Node–Puppeteer, etc.), and any known data gaps • Confirmation that the crawl completed for every U.S. state and territory, without regional bias I will review the spreadsheet for completeness, spot-check against live BBB pages, and verify there are no broken rows or inconsistent column headers before approving.