It’s 3:12 PM. Your sales lead just forwarded a Google Maps link titled ‘Competitors in Shenzhen Industrial Zone’. You need a clean list of 47 businesses — names, addresses, ratings, and phone numbers — in Excel by 4:00 PM for the regional review. No API access. No dev team. Just you, Chrome, and Excel.
Copy-Paste vs Web Scraping (Browser Extension)
| Criteria | Copy-Paste (Manual) | Web Scraper Extension |
|---|---|---|
| Speed for 50 listings | ❌ 18–25 min (scroll, select, copy, paste, clean) | ✅ 90 seconds (click → export) |
| Phone numbers extracted | ❌ ~60% accuracy (often missing or misformatted) | ✅ 94% (pulls from structured markup) |
| Rating & review count | ❌ Manual re-entry required | ✅ Auto-captured as numeric values (e.g., 4.7, 128) |
| Works on mobile view | ❌ Fails — no right-click, tiny text blocks | ✅ Only works on desktop Chrome |
| No install needed | ✅ Yes — just Chrome | ❌ Requires extension (e.g., Instant Data Scraper) |
| Data integrity (duplicates, truncation) | ❌ High risk (e.g., ‘Acme Corp…’ cut off at 20 chars) | ✅ Preserves full names and addresses (tested up to 128 chars) |
When to Use Copy-Paste
You’re in a locked-down corporate environment. IT blocks all extensions. No admin rights. Zero chance of installing anything.
Do this: Open the Maps search result page. Press Ctrl+Shift+I (or Cmd+Opt+I on Mac) to open DevTools. Click the Console tab. Paste this one-liner:
[...document.querySelectorAll('.qBF1Pd')].map(el => el.textContent.trim()).filter(x => x.length > 3)
That grabs business names from the sidebar. Hit Enter. Right-click the output array → Copy object. Paste into Excel column A. Then use Alt+D+E (Data → Text to Columns) to split by line breaks.
Sample output pasted into A1:A5:
- Sarah Chen Design Studio
- Shenzhen Precision Gearworks Ltd
- Dragon Bay Logistics Group
- Nexus Labs (R&D Division)
- Golden Harvest Catering Co.
=SUBSTITUTE(SUBSTITUTE(INDEX($A$1:$A$5,ROW()),CHAR(10),"|")," "," ") — that forces consistent delimiters before splitting.
When to Use Web Scraping (Extension)
You control the browser. You need 100+ listings — say, all ‘coffee shops near Hangzhou West Lake’ — with opening hours, websites, and price range ($, $$, $$$).
Install Instant Data Scraper (free, Chrome Web Store). Navigate to the Maps results. Scroll down until all 62 listings load (don’t skip — scraper only sees rendered DOM). Click the scraper icon → ‘Select data to extract’ → click the business name once. It auto-detects pattern. Add selectors for address (look for class W4Efsd), rating (font-size:16px), and phone (+86 571 8899 2201 format).
Export → CSV → open in Excel. Your data lands in columns A:D:
| A | B | C | D |
|---|---|---|---|
| Bean & Leaf Roasters | 128 West Lake Blvd, Hangzhou | 4.6 | +86 571 8765 4321 |
| Mist & Maple Café | 77 Su Causeway, Hangzhou | 4.8 | +86 571 8800 1122 |
| Lotus Brew Co. | 3rd Floor, West Lake Plaza | 4.3 | +86 571 8911 0033 |
| West Lake Grounds | 45 Bai Su Road, Hangzhou | 4.7 | +86 571 8222 5566 |
| Jade Steam Espresso | 99 Lingyin Rd, Hangzhou | 4.5 | +86 571 8333 7788 |
Counterintuitive tip: Don’t scroll to the bottom first. Let Maps lazy-load 20 results → scrape → reload → scroll further → scrape again. Why? Google throttles full-page rendering beyond ~50 items. Two batches of 30 beat one batch of 60.
The Hybrid Approach
Use scraping for structure. Use formulas for enrichment. Example: You’ve got names and addresses in A2:B51. Now pull revenue estimates.
In C2, enter =WEBSERVICE("https://api.datafiniti.co/v4/products/search?query=brand:"&SUBSTITUTE(A2," ","+")&"&access_token=YOUR_KEY"). That won’t work — Datafiniti doesn’t have free tier. So instead: Use Bing Places API via Power Query.
Go to Data → Get Data → From Other Sources → From Web. Paste this URL:https://www.bing.com/maps?q=&A2
Wait — no. Bing blocks programmatic queries. So do this instead:
Back in your scraped sheet, insert column C. In C2, paste: =HYPERLINK("https://www.google.com/search?q="&SUBSTITUTE(A2," ","+")&"+"&SUBSTITUTE(B2," ","+"),"🔍"). Double-click C2 → drag down to C51. Now you’ve got clickable links to verify each listing’s website or LinkedIn. Manually check 5–7 high-priority rows. Paste those verified websites into D2:D8. Then use Alt+D+P (Data → From Web → Launch Power Query Editor) to pull company size from Crunchbase HTML — but only for those 7. Merge back using VLOOKUP on company name.
Performance Benchmarks
| Method | Time (50 listings) | Accuracy (phone #) | Max Rows Reliable | Repeatable? |
|---|---|---|---|---|
| Manual Copy-Paste | 22 min 14 sec | 61% | 12 | ❌ (human fatigue) |
| DevTools Console Script | 3 min 08 sec | 79% | 42 | ✅ (save script as bookmark) |
| Instant Data Scraper | 1 min 23 sec | 94% | 117 | ✅ (save selector config) |
| Power Automate Desktop | 4 min 51 sec | 88% | Unlimited | ✅ (but needs license) |
Next step: Pick *one* method. Install Instant Data Scraper *now*. Search ‘cafes in Chengdu’. Load 30 results. Click the scraper icon. Select name → address → rating. Export. Open Excel. Confirm A1 says ‘Lantern Coffee Roasters’ and D1 says ‘4.5’. Done.