Baidu Maps Scraper

China's map,
as a place table.

Give it the categories or brands you want and the cities to look in, and get the places back as rows: the name, the address, the phone number, the category tag, a latitude and longitude, and Baidu's own id for the place. Nine columns, one row per place. One thing to know before you start: Baidu Maps is China-hosted and blocks non-China datacenter IPs, so this scraper needs a residential - ideally China-exit - proxy to return anything.

500 free rows, one-timethen $0.002 per row9 columnsCSV · XLSX · JSON
How it works

Categories and cities in,
places out.

Two boxes rather than one: what you are looking for, and where. The platform combines them, so every category is searched in every location.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Baidu Maps Scraper.
  3. STEP 3Enter the categories or brands you want, one per line.
  4. STEP 4Enter the locations, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  5. STEP 5Set a limit per query, or set it to 0 to take everything.
  6. STEP 6Click Get Data.

The two lists are combined into a cross product, so ten categories against twenty cities is two hundred searches, not thirty. Read the note under the dictionary before you paste a long list into either box.

Why teams use it

The map behind
the Great Firewall.

The source that actually covers China

Western map products are thin on mainland Chinese listings. Baidu is where those places are, which makes it the only practical starting point for a place dataset inside China.

Categories times cities, in one job

You give it two lists and it walks the grid. A category sweep across twenty cities is one job with one output file, rather than twenty jobs you stitch together afterwards.

A stable id per place

Every row carries Baidu's own identifier for the place. That is what makes a second run comparable to the first, rather than a fresh pile of names to fuzzy-match.

What you get

Nine columns -
and a straight answer about them.

The column set below is solid. What the cells contain is not something this page will guess at, and the reason is worth two paragraphs of your time.

The nine names and their order come from the header row of five separate run exports, made a fortnight apart, that agree exactly. That is the strongest evidence we have for this scraper - and it is one source rather than two, which is worth saying plainly: unlike most pages here, there is no published column list to check it against.

What we do not have is a populated export. Baidu Maps is China-hosted and blocks non-China datacenter IPs, and every run archived here was made without a China-exit proxy, so each one came back as a header row with nothing beneath it. That is the documented behaviour, not a fault. It means this page can tell you what each column is for, and cannot tell you what shape its values take - so you will not find a type, a unit, a format or an example below. Point a run with your own proxy at a single category in a single city and read the first file you get.

Data dictionary

Nine columns,
in export order.

The export's header row, in order. Descriptions say what each field is for; they deliberately claim nothing about its format, units or vocabulary - see the note above.

category
The category or brand you submitted, repeated on every row that came from it. Half of the pair that produced the search.
location
The location you submitted, repeated on every row that came from it. The other half of the pair - together with category it tells you which of your searches a row belongs to.
name
The name of the place.
address
The address as the listing gives it. It arrives as one field; there are no separate city, district or postcode columns to group on.
phone
The phone number on the listing.
tag
Baidu's own classification of the place. This is the platform's label, not the category you asked for, so the two can differ on the same row.
latitude
The north–south coordinate. Establish which coordinate system these are in before you plot or join them - see the note below.
longitude
The east–west coordinate. The same caution applies.
uid
Baidu's identifier for the place. This is the column to key on when you re-run a search and want to know what changed, and the only field here that is stable when a business renames itself.

Read this before you plan around the table above. Every run export we hold for this scraper came back empty - each a workbook with this header row and no data row beneath it. The cause is not a bug: Baidu Maps is China-hosted and blocks non-China datacenter IPs, and a run without a residential, ideally China-exit, proxy completes and returns nothing at all rather than raising an error. So the nine names are solid; nothing else here is. We publish no fill rates, no example values and no format for any column. That includes the coordinates, and they are the ones that will bite. Mapping services do not all publish positions on the same datum, and dropping two numbers onto a GPS basemap is a one-line operation that produces a confidently wrong map when the datum differs. This page will not tell you which system these are in, because we have not seen a populated cell - check a handful of known addresses against your own basemap on your first real run, before anything downstream depends on the answer.

Run controls

Set on the job,
not in the spreadsheet.

Two input lists and one limit. The lists are combined into a cross product, so the limit is per search, not per run - that is the number that decides what a job costs.

Categories or brands Locations Combined as a cross product Limit per query 0 for everything CSV upload XLSX upload TXT upload Parquet upload China-exit proxy needed
Common workflows

Three jobs this
runs more than any other.

A few examples of how teams use Chinese place data to answer a question they actually have.

Expansion

Count the competition city by city

One category against a list of cities gives you a comparable count per market in a single file. Because both halves of the pair are on every row, the group-by is already there - no reverse-engineering which search a place came from.

Expansion · Strategy
Footprint

Map a brand's mainland store network

The input box takes brands as readily as categories, so a chain's outlets across a set of cities come back as one table with a stable id per location - which is what makes the next run a comparison rather than a fresh start.

Retail
Coverage

Fill the China gap in a global place set

Place datasets built from Western sources thin out sharply inside China. Running the same category list here and appending is the practical way to close that gap - once you have settled the coordinate question above.

Data engineering
Pricing

Pay only for the places
you actually pull.

No subscription, no minimum, no recurring bill. Your first 500 rows are on us - after that you pay as you go, at the same flat rate as every other scraper here.

Free tier

500 free rows - $0

On every new account, one-time. No credit card. Per-query limits, file upload and every export format included.

$0 forever
Pay as you go

$0.002 per row after the free tier

About $2 per 1,000 places. The up-front estimator shows the row count and credit cost before a run starts - worth a second look here, because two input lists multiply into more searches than people expect.

Most popular
Volume

Custom · high volume

Volume pricing, dedicated workers and an SLA for ongoing monitoring or very large historical pulls. Tell us your numbers and we will put together a quote.

Talk to us
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Sign up
Pairs well with

One map,
and the ones beside it.

The legal bit

Is scraping
Baidu Maps legal?

Short answer: the listings are public business information - but this is a Chinese service holding Chinese data, and that changes which rules you should be asking about.

A Baidu Maps listing is shown to anyone who runs the search: the name, the address, the phone number and the category are what the place is published to be found by. Collecting publicly visible business listings for market research is long-settled practice, and this scraper touches no login, no account and no paywall.

What is different here is jurisdiction. The service is China-hosted, the data describes businesses in China, and Baidu's own terms restrict automated access - so this is a terms question as much as a legal one, and the terms are not the ones most readers of this site are used to. If you are moving the results out of China, cross-border transfer is a real question with its own rules rather than an afterthought, and it is worth putting to someone qualified before a pipeline depends on the answer. We are not the right people to give that advice, and this paragraph is not it.

On the personal-data side the rows are business records, which keeps most of this out of the way - but phone is still a contact number, and for a sole trader or a small shop that number often reaches a specific person. If your analysis is about coverage and location rather than contact, drop the column at ingest and the question stops being yours. We run no third-party trackers on the data layer, and your exports self-delete after 30 days.

livescraper.app · principles
Public business listings only
No logins, no accounts touched
Cross-border transfer is your question to settle
phone can be personal data - drop it if unused
Exports self-delete (30 days)
Check Baidu's own terms before scaling.
Common questions

What people ask
before signing up.

The questions we hear most. Something else? Talk to us - humans write the answers, not bots.

How do I scrape Baidu Maps?+
Using the Baidu Maps Scraper:
  1. Sign in to the platform.
  2. Open the Baidu Maps Scraper.
  3. Enter the categories or brands you want, one per line.
  4. Enter the locations, one per line - or upload a CSV, XLSX, TXT or Parquet file.
  5. Set a limit per query, or set it to 0 to take everything.
  6. Click Get Data.
Why did my run come back empty?+
Almost certainly the proxy. Baidu Maps is China-hosted and blocks non-China datacenter IPs, so without a residential - ideally China-exit - proxy the job completes normally and returns nothing at all. There is no error to read, which is what makes it confusing. Point the run at a suitable proxy and try one category in one city before doing anything larger.
How do the two input boxes work together?+
They multiply. Every category is searched in every location, so ten categories against twenty cities is two hundred searches rather than thirty. That is useful when you want a grid and expensive when you did not realise you had asked for one, so check the estimator before starting a run built from two long lists.
What comes back for each place?+
Nine columns: the category and the location you submitted, the name, the address, the phone number, Baidu's own category tag, a latitude and longitude, and Baidu's identifier for the place. One row per place, and all nine are in the CSV and XLSX as well as the JSON.
What coordinate system are the latitude and longitude in?+
We are not going to tell you, because we have not seen a populated export. This matters more than the other columns: mapping services do not all publish positions on the same datum, and plotting two numbers on a GPS basemap is a one-line operation that produces a confidently wrong map when the datum differs. Check a few places you know against your own basemap on your first real run, and settle it there before anything downstream depends on it.
Why does the tag column not match the category I asked for?+
Because they are different things. The category column repeats what you submitted; the tag column is Baidu's own classification of the place. A search for one term can return places the platform files under something adjacent, so the two legitimately differ on the same row. Group by whichever one your question is actually about.
Is it legal to scrape Baidu Maps?+
The listings are public business information and this reads nothing else - no sign-in, no account, no paywall. But the service is China-hosted and Baidu's terms restrict automated access, so it is a terms question as much as a legal one, and moving results out of China raises cross-border transfer rules worth taking proper advice on. The rows are business records rather than people, though the phone column is an exception worth dropping if you do not need it.
How much does it cost?+
The first 500 rows are free and one-time, with no credit card. After that it is $0.002 per row - about $2 per 1,000 places - which is the same flat rate as every other scraper on the platform. The estimator shows the cost of a run before it starts, which is worth reading here because two input lists multiply.

Your first 500 places,
on the house.

500 one-time free rows on every new account - no expiry date. After that $0.002 per row, pay as you go - no card on file until you say so.

Live instantly · no card required

Scraping Baidu Maps place data at scale

Livescraper's Baidu Maps Scraper turns map searches into place data. You give it two lists - the categories or brands you are looking for, and the locations to look in - and the platform combines them, searching every category in every location. The locations can be typed one per line or uploaded as a CSV, XLSX, TXT or Parquet file. Cap the rows per search, then download the results as a clean CSV, Excel or JSON file.

Each row carries nine columns: the category and location you submitted, the place name, the address, the phone number, Baidu's own category tag, a latitude and longitude, and Baidu's identifier for the place. That last column is the one that makes a repeat run a comparison rather than a fresh start, because it survives a business changing its name.

Expansion teams run one category against a list of cities to get a comparable count per market in a single file. Retail teams put a brand in the same box to map a chain's mainland outlets. Data engineers use it to close the China gap in a place dataset assembled from Western sources, where mainland coverage thins out sharply.

Two things to know before you build on it. This scraper needs a residential, ideally China-exit, proxy: Baidu Maps is China-hosted and blocks non-China datacenter IPs, and without one a run completes and returns nothing at all rather than raising an error. And because every export archived here came back as a header row with no data beneath it, this page names the nine columns and says what each one is for without claiming a type, a unit or a format for any of them - including the coordinates, whose datum you should establish from your own first run before joining them against GPS data. Start free: your first 500 rows cost nothing and need no credit card, and after that it is a flat $0.002 per row.