Baidu Maps Scraper
Under maintenancePricing
from $1.99 / 1,000 search results
Baidu Maps Scraper
Under maintenanceScrape 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
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
0
Monthly active users
21 days ago
Last modified
Categories
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
| Field | Required | Default | Description |
|---|---|---|---|
query | yes | 餐厅 | Primary POI search term. Chinese keywords usually return the best coverage. |
queries | no | [] | Up to 19 additional search terms processed in the same run. |
region | yes | 北京 | City or region appended through the Baidu Maps search interface. |
maxItems | no | 100 | Maximum records across all queries after global deduplication. |
maxItemsPerQuery | no | 100 | Per-query collection cap used for fair interleaving. |
maxPages | no | 10 | Maximum pages processed for each query. |
requestDelayMs | no | 0 | Delay between same-page pagination requests. |
maxConcurrency | no | 3 | Concurrent independent query searches, from 1 to 5. |
market | no | zh-CN | Locale used in normalized search context fields. |
maxRequestRetries | no | 3 | Bounded retries for temporary browser, network, and proxy failures. |
navigationTimeoutSecs | no | 60 | Per-navigation timeout. |
requestHandlerTimeoutSecs | no | 120 | Per-query handler timeout. |
categoryContains | no | — | Case-insensitive category/tag filter. |
minRating | no | — | Minimum source rating from 0 to 5. |
minReviewCount | no | — | Minimum parsed review count. |
openNowOnly | no | false | Keep only POIs reported as open. |
sortBy | no | relevance | relevance, nameAsc, nameDesc, ratingDesc, reviewCountDesc, or distanceAsc. |
proxyConfiguration | no | no proxy | Standard Apify or custom proxy configuration. |
blockMedia | no | false | Optional 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, andtags. - 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"}}