Back to blog
Guides & How-tos2026-03-15·10 min read

How to Scrape Google Maps for an Entire Country: Complete Guide

By Ibrahim DemolCEO IBLeadUpdated June 12, 2026

Google Maps contains millions of local business listings — addresses, phone numbers, emails, ratings, hours. It’s a free business database accessible to everyone. But how to scrape Google Maps for an entire country without spending days coding? This guide compares two approaches: the technical method (Python, Octoparse, pandas) and the no-code method using a pre-indexed database. The result: same goal, but considerable differences in time and volume.


Why Google Maps is a Goldmine for B2B Prospecting

Google Maps lists hundreds of millions of establishments worldwide. Each listing contains structured data: name, category, address, phone, rating, number of reviews, website, hours.

For a salesperson, growth marketer, or agency, it’s a ready-to-use directory of local businesses. Targeting is precise: search for "plumber" in France, and you get all the listed plumbers.

The problem? Extracting a few hundred listings manually is feasible. Extracting 50,000, 100,000, or 140,000 listings for an entire country is another story.


The 120 Results Limit on Google Maps

Before discussing methods, it’s essential to understand a fundamental technical constraint: Google Maps displays a maximum of 120 results per search.

Search for "restaurant Paris" on Google Maps — you get 120 listings, no more. Even though Paris has thousands of restaurants.

To scrape an entire country, you need to break the search into sub-geographical areas. In France, this means running a search by municipality — about 36,000 municipalities to process one by one.

This is where the technical method becomes complex.


Method 1: Scraping Google Maps with Technical Tools

This approach suits technical profiles who want full control. It involves several steps.

Step 1: Retrieve the List of Municipalities

It’s impossible to run 36,000 searches manually. First, you need to build the list of all French municipalities.

A site like communes.fr lists all municipalities by department. You can create a scraper there — with Octoparse, for example — to automatically extract names and postal codes.

Setting up the scraper requires creating two nested loops:

  • A loop over the 101 departments
  • A loop over the municipalities in each department

XPath expressions help refine the selection of HTML elements. Data cleaning (removing the word "commune" from each name, formatting postal codes) is then done with Python and the pandas library.

Execution time for this single step: 48 minutes in the cloud, 1h05 locally. Result: about 36,000 rows spread across two CSV files (Excel doesn’t exceed 20,000 rows per file).

Step 2: Build the Search Keywords

The list of municipalities isn’t enough. Each municipality needs to be transformed into a Google Maps query.

"Belley" becomes "restaurant near Belley". A prefix is added to each line. With pandas, a few lines of code are sufficient — but first, you need to merge the two CSV files, remove duplicates, and then apply the transformation.

import pandas as pd

df1 = pd.read_csv("communes_part1.csv")
df2 = pd.read_csv("communes_part2.csv")
df = pd.concat([df1, df2]).drop_duplicates(subset=["commune"])
df["keyword"] = "restaurant near " + df["commune"]
df.to_csv("keywords.csv", index=False)

Step 3: Launch the Google Maps Scraping

With the list of keywords ready, use an Octoparse template to scrape Google Maps. Insert the keywords, set a page size (number of results per search), and launch.

Constraint: Octoparse is limited to 10,000 keywords per task. For 36,000 municipalities, you need to create 4 distinct tasks.

Total execution time: 2 days and 15 hours.

Step 4: Clean and Merge the Results

Four tasks produce four files. You need to merge them and then remove duplicates — not across all columns, but based on the establishment name and its location (the same restaurant may appear in multiple searches of neighboring municipalities).

Results of the Technical Method

For restaurants across France:

Indicator Result
Raw Rows 68,389
After Deduplication 52,658
Columns 7
Total Time ~3 days

The 7 columns obtained: category, title, rating, number of reviews, location, opening hours (only the first time slot), phone.

No email. No website. No social media. The hours are incomplete — only the first time slot is retrieved, not the complete weekly schedule.


The Real Limitations of the Technical Method

Let’s be direct about what this method does not achieve.

No enrichment. The raw data from Google Maps does not contain emails. To obtain them, you would need to visit each website individually — an additional step that multiplies processing time.

Incomplete data. Opening hours, photos, detailed reviews, social media: none of this is extracted cleanly with a generic scraper.

Constant maintenance. Google regularly changes the structure of its pages. A scraper that works today may break in 3 weeks. Monitoring, correcting, and restarting is necessary.

Required skills. Python, pandas, XPath, virtual environment management, handling large CSV files. This is not within everyone’s reach.

Risk of blocking. Google detects automated behaviors. Without proxy rotation and delay management, the scraper gets blocked.


Method 2: A Pre-Indexed Database for Exporting in Minutes

The alternative to the technical method is to use a pre-built database. This is the principle behind IBLead.

IBLead has already scraped and indexed 50M+ Google Maps businesses in 37 countries. Everything is pre-processed, enriched, and updated weekly. The user does not scrape — they filter and export.

How It Works in Practice

  1. Choose a category (e.g., "restaurant")
  2. Select the geographical area — city, department, region, or entire country
  3. Apply filters
  4. Export to CSV

No code. No waiting for several days. The export is instant.

Available Filters

IBLead allows filtering by:

  • Google Rating: target only establishments with 4+ stars, or conversely, poorly rated ones (business opportunity)
  • Number of Reviews: distinguish established establishments from newcomers
  • Presence of a Website: essential for offering digital services
  • Presence of an Email: for direct email campaigns
  • Detected Technologies: 160+ technologies analyzed — CMS (WordPress, Shopify, Wix), ad pixels (Facebook Pixel, Google Ads), email tools (Mailchimp, HubSpot), payment solutions (Stripe, PayPal)
  • Phone Number: mobile or landline
  • Claimed or Unclaimed Listing on Google Maps

This last filter is particularly useful for agencies: an unclaimed listing indicates an owner who is not actively managing their online presence — an entry point for offering services.

Data Included in Each Export

Where the technical method produces 7 columns, IBLead exports 50+ fields per listing:

  • Name, complete address, phone (mobile/landline distinguished), email enriched from the website
  • Website, Google Maps categories, average rating, number of reviews
  • Google Reviews: full text, rating, date, author — up to 500 reviews per listing
  • Social media (Facebook, Instagram, YouTube, LinkedIn, Twitter)
  • Complete hours (7 days), photos, GPS coordinates
  • Detected technologies (160+ technologies)
  • Google Place ID, CID
  • SIRET, SIREN, APE code, name of the manager (France only)

Compared Results

For restaurants across France:

Indicator Technical Method IBLead
Rows 52,658 ~140,000
Columns 7 50+
Emails No Yes
Technologies No Yes (160+)
Detailed Reviews No Yes (up to 500)
Time ~3 days Minutes
Required Skills Python, XPath, pandas None

What It Costs

€44 for 10,000 leads — or €0.004 per enriched contact with email, technologies, reviews, and SIRET data.

To test, IBLead offers 200 free credits (no card required).


Use Cases: Who Needs to Scrape an Entire Country?

Digital Agencies

An agency prospecting restaurants without a website or with poor SEO needs a significant volume. Filtering by "no website" or "outdated technologies" across France produces lists of several thousand qualified prospects.

SaaS Software Publishers

A SaaS targeting hairdressers, plumbers, or lawyers can extract the entire addressable market in France in minutes. Filtering by technology even allows identifying prospects already using a competitor.

Field Sales Representatives

A salesperson covering a region can extract all prospects from a department, filter by rating and number of reviews, and obtain a prioritized list in 5 minutes.

Growth Marketers

Building a list of 50,000 enriched prospects with emails for a cold email campaign is the central use case. The CSV imports directly into Lemlist, Instantly, or any other emailing tool.


Legality of Scraping Google Maps

This question often arises. Here’s what you need to know.

The data on Google Maps is public. Anyone can view it manually. Automated scraping of public data is generally considered legal in most European jurisdictions.

However, Google’s terms of service prohibit automated scraping of their services. This is an important distinction: legal in terms of law, but potentially against Google’s TOS.

For pre-indexed databases like IBLead, the question of real-time scraping does not arise — the data is already collected and stored.

Regarding GDPR: business contact data (professional email, professional phone) is considered B2B data, distinct from personal data in the strict sense. B2B prospecting via email remains permitted under certain conditions (opt-out available, message relevance).


FAQ: Scraping Google Maps for an Entire Country

How long does it take to scrape Google Maps for an entire country with Python?

With Octoparse and pandas, expect about 3 days of processing to extract ~52,000 restaurants in France. This includes retrieving municipalities (1h), building keywords, 4 scraping tasks (2 days 15h each in parallel), and data cleaning.

Why does Google limit to 120 results per search?

This is a technical limit imposed by Google to prevent server overload and discourage massive scraping. To bypass this limit, you need to multiply geographical searches — one per municipality, for example.

Can you scrape Google Maps without coding?

Yes. Pre-indexed databases like IBLead allow exporting thousands of listings without writing a line of code. You filter by category, geographical area, and quality criteria, then export to CSV.

What data can be extracted from Google Maps?

With a technical scraper: name, rating, number of reviews, location, phone, first time slot. With an enriched database: name, address, phone, email, website, social media, complete hours, detailed reviews, site technologies, legal data (SIRET, manager for France).

How much does it cost to extract 10,000 Google Maps leads?

With IBLead: €44 for 10,000 enriched leads. With the technical method: free in theory, but several days of work and less complete data (no emails, no technologies).


Conclusion

Scraping Google Maps for an entire country is technically possible with Python, Octoparse, and pandas. But the real cost — in time, skills, and data quality — is high. Three days of processing for 52,000 rows and 7 columns, without emails or technologies.

A pre-indexed database produces 140,000 rows and 50+ columns in minutes, with enrichment included.

The choice depends on your resources. If you have a developer available and a very specific one-time need, the technical method may work. If you need volume, regularity, and enriched data, a pre-indexed database is more efficient.

To test IBLead in your sector and target country: free credits — 200 credits included

Ready to get started?

Access every Google Maps business, enriched with emails and legal data.

Try IBLead free