Baidu Maps Scraper avatar

Baidu Maps Scraper

Under maintenance

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
Baidu Maps Scraper

Baidu Maps Scraper

Under maintenance

Scrape points-of-interest (POI) from Baidu Maps. Extracts business names, addresses, phones, ratings, reviews, hours, coordinates, and categories. Supports pagination and region filter.

Pricing

from $1.99 / 1,000 search results

Rating

0.0

(0)

Developer

Search API

Search API

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

0

Monthly active users

21 days ago

Last modified

Share

Search Baidu Maps by POI keyword and city/region and export normalized place records. The Actor uses Baidu's structured search response when it is available and falls back to the rendered result cards when the response shape changes.

Input

FieldRequiredDefaultDescription
queryyes餐厅Primary POI search term. Chinese keywords usually return the best coverage.
queriesno[]Up to 19 additional search terms processed in the same run.
regionyes北京City or region appended through the Baidu Maps search interface.
maxItemsno100Maximum records across all queries after global deduplication.
maxItemsPerQueryno100Per-query collection cap used for fair interleaving.
maxPagesno10Maximum pages processed for each query.
requestDelayMsno0Delay between same-page pagination requests.
maxConcurrencyno3Concurrent independent query searches, from 1 to 5.
marketnozh-CNLocale used in normalized search context fields.
maxRequestRetriesno3Bounded retries for temporary browser, network, and proxy failures.
navigationTimeoutSecsno60Per-navigation timeout.
requestHandlerTimeoutSecsno120Per-query handler timeout.
categoryContainsno—Case-insensitive category/tag filter.
minRatingno—Minimum source rating from 0 to 5.
minReviewCountno—Minimum parsed review count.
openNowOnlynofalseKeep only POIs reported as open.
sortBynorelevancerelevance, nameAsc, nameDesc, ratingDesc, reviewCountDesc, or distanceAsc.
proxyConfigurationnono proxyStandard Apify or custom proxy configuration.
blockMedianofalseOptional developer optimization that aborts media/font requests; leave disabled if the target UI needs them.

Output

The dataset schema documents 86 typed fields. Every record includes the stable common contract: id, type, resultType, position, globalPosition, queryPosition, page, name, nameLocal, region, country, source, engineId, searchQuery, query, searchUrl, market, language, extractionMethod, scrapedAt, and searchMetadata.

Depending on what Baidu exposes for an individual POI, records can also include:

  • Baidu identity: uid, poiId, category, categoryCode, categories, and tags.
  • Location: address components, numeric latitude/longitude, and coord. Projected map coordinates are never mislabeled as geographic degrees.
  • Contact: phone, website, and email.
  • Reputation and pricing: rating, review counts, price, numeric price, price level, and currency.
  • Operations: opening hours, open status, business status, verification/claim status, and chain information.
  • Media and features: description, thumbnail, images/photos, facilities, and payment options.
  • Navigation and provenance: POI URLs, canonical URL, domain, source, extraction mode, and normalized search context.
  • Transport provenance: parsed API total, HTTP status, response content type, and API response count when available.

The OUTPUT key-value record reports status, per-query counts, pagination progress, API/DOM usage, duplicate and filter counts, applied filters, sort order, and failed/no-result query positions.

Unavailable optional fields are omitted rather than emitted as null, empty strings, empty arrays, or empty objects.

Pagination, limits, and deduplication

Pagination is performed inside the same live Baidu Maps SPA page so search and session state are preserved. Records are deduplicated by Baidu UID when available, otherwise by a stable SHA-256 key derived from name, address, query, and region. maxItemsPerQuery buffers each query independently; relevance output is round-robin interleaved and then capped by the global maxItems. Other sortBy values are applied after interleaving and global deduplication.

An explicit no-results response completes successfully with an empty dataset. Selector/API drift raises an error instead of silently reporting success. Verification and CAPTCHA responses fail closed and are never stored.

When the local system resolver cannot resolve map.baidu.com, the Actor may use a bounded public-DNS lookup only to map the official hostname inside the browser. It does not replace the official hostname or bypass Baidu verification.

Proxy and access boundaries

Residential proxy configuration can improve ordinary geographic availability and rate-limit resilience. The Actor does not solve or bypass interactive verification, authentication, account restrictions, or other access controls. If Baidu presents an explicit challenge, the run stops with an empty dataset.

After a successful run, download the dataset JSON from the run's default dataset storage or the Apify dataset API/Console links. The OUTPUT key-value record remains available even when Baidu blocks the run.

A challenge is reported as errorCode: TARGET_VERIFICATION in the run log and query summary, with failureCategories: ["challenge"] in OUTPUT; the per-query summary retains the observed HTTP status and response content type without storing the response body.

Example

{
"query": "咖啡厅",
"queries": ["酒店", "公园"],
"region": "北京",
"maxItems": 50,
"maxItemsPerQuery": 25,
"maxPages": 3,
"maxConcurrency": 3,
"sortBy": "ratingDesc",
"minRating": 4,
"minReviewCount": 20,
"requestDelayMs": 300,
"blockMedia": false,
"market": "zh-CN",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"countryCode": "CN"
}
}