Baidu Search Results Scraper
Pricing
from $2.08 / 1,000 result extracteds
Baidu Search Results Scraper
Search Baidu by keyword and export ranked titles, snippets, destination URLs, displayed domains, positions, and result features for Chinese SEO monitoring.
Pricing
from $2.08 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search Baidu by keyword and export ranked result titles, snippets, destination URLs, displayed domains, positions, and supported result features.
This Actor is built for recurring Chinese SEO monitoring, brand research, content discovery, and market analysis. It accepts Chinese or international queries and returns integration-ready JSON from Baidu Search.
A query such as 百度地图 can help you study how Baidu Maps pages and competing pages appear in Baidu search results.
The Actor does not scrape Baidu Maps place listings; it extracts Baidu web search result cards.
What does Baidu Search Results Scraper do?
For each supplied query, the Actor:
- Opens a coherent mobile browser session.
- Bootstraps Baidu cookies before searching.
- Loads one or more ranked result pages.
- Detects verification pages instead of treating them as empty results.
- Retries with a fresh browser and cookie session.
- Extracts useful result cards with titles and destinations.
- Removes duplicate rows within each query.
- Charges only for accepted result rows.
- Writes normalized records to the default Apify dataset.
The output keeps the original query, absolute position, page number, search URL, and fetch time. That makes repeated datasets suitable for comparing rank changes outside the Actor.
Who is it for?
SEO teams
Track Chinese keyword visibility and export result positions into a warehouse, spreadsheet, or dashboard.
Brand and communications teams
Review which pages appear for a company, product, executive, or campaign query.
Market researchers
Collect ranked sources and snippets for products, industries, technologies, and competitors in China.
Developers and data engineers
Use the Apify API, webhooks, schedules, and integrations to build a repeatable Baidu SERP pipeline.
Content teams
Inspect result titles, snippets, domains, and enhanced features before planning Chinese-language content.
Why use this Actor?
- Rank-aware records — every row includes its query, absolute position, and page.
- Destination evidence — canonical destinations are used when Baidu exposes them.
- Redirect traceability — Baidu redirect URLs are preserved separately when available.
- Result features — template identifiers distinguish ordinary and enhanced result cards.
- Chinese-ready browser context — mobile Baidu is opened with a Chinese locale.
- Bounded recovery — challenge pages trigger fresh sessions, not false empty success.
- Spend controls — per-query and run-wide limits are enforced before saving rows.
- Standard Apify output — results work with datasets, API clients, schedules, and webhooks.
What Baidu data can I extract?
| Field | Meaning |
|---|---|
query | Search term that produced the record |
title | Result title displayed by Baidu |
snippet | Displayed result summary, or null |
destinationUrl | Canonical destination when exposed; otherwise the Baidu redirect |
displayedDomain | Domain associated with the destination |
position | Absolute result-card position reported by Baidu |
page | One-based search result page |
resultType | organic or enhanced |
resultFeature | Baidu template identifier such as www_index |
baiduRedirectUrl | Baidu tracking redirect, or null |
searchUrl | Exact Baidu page used for extraction |
fetchedAt | ISO 8601 fetch timestamp |
Baidu may omit a snippet or canonical URL for some card types. The schema therefore documents fields that may be unavailable on individual records.
How to scrape Baidu search results
- Open the Actor in Apify Console.
- Enter one or more real queries in Search queries.
- Choose Maximum results per query.
- Set Maximum total results as a run-wide spending cap.
- Click Start.
- Open the Baidu search results dataset view.
- Export JSON, CSV, Excel, XML, or another Apify-supported format.
A useful first run is:
{"queries": ["百度搜索 API"],"maxResultsPerQuery": 10,"maxItems": 10}
Input parameters
queries
Required array of 1–50 non-empty search terms. Each term can contain up to 200 characters. Duplicate terms are processed once.
Examples:
百度地图百度搜索 API百度智能云人工智能新能源汽车
maxResultsPerQuery
Maximum accepted records for each query. Allowed range: 1–50. Default: 20.
maxItems
Maximum accepted records across the entire run. Allowed range: 1–1,000. Default: the smaller of 1,000 or the requested per-query total.
Output example
The following shape comes from the current implementation; long tracking values are shortened for readability:
{"query": "百度智能云","title": "官方百度智能云-“芯云模体”新全栈AI云","snippet": "百度智能云致力于为企业和开发者提供人工智能、大数据和云计算服务...","destinationUrl": "https://cloud.baidu.com/","displayedDomain": "cloud.baidu.com","position": 1,"page": 1,"resultType": "organic","resultFeature": "www_index","baiduRedirectUrl": "https://m.baidu.com/.../tc?...","searchUrl": "https://m.baidu.com/s?word=...&rn=10&pn=0","fetchedAt": "2026-09-01T20:19:53.649Z"}
Each accepted row is written to the default dataset. No screenshots, raw HTML, cookies, or browser debug objects are included in product output.
How much does it cost to scrape Baidu search results?
The Actor uses pay-per-event pricing:
- Start: $0.005 once per run.
- Search result: tiered by your Apify plan; BRONZE is $0.003464 per accepted row.
At BRONZE pricing, estimate a run as one start event plus the accepted result count multiplied by the BRONZE result price. For example, a 10-row run charges one start event and 10 result events; a 100-row run charges one start event and 100 result events.
The Actor does not charge the result event for rejected, duplicate, empty, or failed cards. Apify platform compute and storage usage may be billed separately according to your Apify plan. Actual output volume depends on the query, result features, and Baidu response. Check the current pricing panel before large runs.
Recurring Baidu SEO monitoring workflow
A practical monitoring workflow is:
- Create one query list for a product, category, and competitor set.
- Run the same input on a daily or weekly Apify schedule.
- Send dataset completion webhooks to your warehouse or automation platform.
- Compare rows by
query,destinationUrl, andposition. - Flag newly appearing URLs, disappeared URLs, and material position changes.
- Keep
fetchedAtand the run ID as observation evidence.
The Actor returns observations, not a built-in historical rank database. Store or compare prior datasets in your own workflow.
Integration ideas
Google Sheets
Use the Apify Google Sheets integration to append each completed dataset to a monitoring workbook.
Make or Zapier
Trigger a scenario when a run succeeds, then route new rows by query or domain.
Webhooks
Send run success and failure events to your ingestion endpoint.
Data warehouse
Fetch dataset JSON through the API and upsert records keyed by query, date, and destination URL.
Alerts
Compare the newest dataset with the previous run and notify your team when a tracked domain changes position.
Run with the Apify API using cURL
Replace YOUR_APIFY_TOKEN with a secure token and keep it outside source control:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~baidu-search-results-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["百度搜索 API"],"maxResultsPerQuery": 10,"maxItems": 10}'
For production, prefer an Authorization header so the token does not appear in URLs or access logs.
Run with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/baidu-search-results-scraper').call({queries: ['百度智能云'],maxResultsPerQuery: 10,maxItems: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Install the client with npm install apify-client.
Run with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("automation-lab/baidu-search-results-scraper").call(run_input={"queries": ["百度地图"],"maxResultsPerQuery": 10,"maxItems": 10,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Install the client with pip install apify-client.
Use Baidu Search Results Scraper with MCP
Add this Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/baidu-search-results-scraper"
Claude Desktop, Cursor, and VS Code setup
Use this equivalent MCP configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/baidu-search-results-scraper"}}}
Example prompts:
- “Run Baidu Search Results Scraper for
百度智能云and return the top domains.” - “Collect Baidu positions for
人工智能and新能源汽车, then group results by query.” - “Export the Baidu results to a dataset and summarize enhanced result features.”
Your MCP client still needs access to your Apify account and appropriate Actor permissions.
Tips for reliable Baidu extraction
- Start with 7–10 results per query before requesting deeper pages.
- Use Chinese queries when monitoring Chinese-language discovery.
- Keep query batches bounded so one run remains easy to inspect and retry.
- Avoid repeatedly launching identical runs after a verification challenge.
- Compare exact inputs across scheduled runs for meaningful rank changes.
- Use
maxItemsas a hard dataset and spending cap.
The implementation creates a fresh coherent browser context when a page is challenged. It performs at most four session attempts per page and then fails clearly.
Limits and failure behavior
Baidu is a live search service and can change markup, rankings, templates, and anti-automation behavior. Results can vary by time, session, location, device surface, and Baidu experiments.
The Actor supports up to:
- 50 queries per run;
- 50 accepted results per query;
- 1,000 accepted results per run;
- five requested pages per query;
- four browser-session attempts per page.
Verification pages and unrecognized response shapes are errors, not valid zero-result pages. If retries are exhausted, the run fails so monitoring systems can alert rather than ingest false emptiness. Rows saved before a later failure can remain in the dataset; always check run status.
Some enhanced cards do not expose an independent canonical destination.
In that case, destinationUrl can contain the Baidu redirect URL and displayedDomain can be a Baidu domain.
Data quality and rank interpretation
position is the result-card order exposed by Baidu.
Enhanced cards can occupy positions between ordinary web results.
Use resultType and resultFeature when comparing like-for-like rankings.
The Actor excludes cards without a usable title and link, obvious related-search modules, and visible advertising labels. Because the product filters non-result modules, the number of accepted rows can be smaller than the number of visible cards.
Do not treat a single run as a universal ranking for every Baidu user. For monitoring, compare repeated observations produced with the same input and schedule.
Responsible use and legality
Use this Actor only for lawful purposes and public search information. Follow Baidu's terms, applicable laws, intellectual-property rules, privacy requirements, and your organization's policies.
Do not use the Actor to collect sensitive personal data, evade access controls, overload Baidu, or make automated high-impact decisions about people. Set conservative limits and schedules. You are responsible for your inputs, downstream storage, retention, and use of results.
This documentation is operational guidance, not legal advice.
Troubleshooting
Why did the run fail with a verification challenge?
Baidu can challenge a browser or cookie session. The Actor retires the challenged context and retries with a fresh browser session up to the configured bound. If all attempts fail, wait before retrying rather than launching identical runs repeatedly. Do not interpret the failed run as proof that the query has no results.
Why are there fewer than ten rows?
A Baidu page can contain ads, related searches, answer modules without usable links, and other non-result cards. The Actor saves only cards that satisfy the output contract. Natural query volume and Baidu experiments also vary.
Why is a destination still a Baidu URL?
Some result features expose only a Baidu tracking redirect. The Actor uses the canonical destination from card metadata when available and otherwise preserves the redirect as the usable destination.
Can this Actor scrape Baidu Maps places?
No.
It can search a phrase such as 百度地图, but it does not extract map places, coordinates, reviews, or navigation data.
Does the Actor store rank history?
No. Schedule repeated runs and compare their datasets in a sheet, database, or automation workflow.
FAQ
Does it support English queries?
Yes. Queries may be Chinese or international text, although Baidu's returned content and ranking behavior remain source-controlled.
Can I search multiple keywords in one run?
Yes, up to 50 queries, subject to maxItems and per-query limits.
Does it resolve every Baidu redirect?
No network request is made solely to follow each result link. The Actor prefers canonical card metadata and preserves the redirect for traceability.
Are enhanced result features included?
Yes, when a feature card has a useful title and destination.
Use resultType: "enhanced" and resultFeature to identify it.
Can I use Apify schedules?
Yes. Schedules are a good fit for recurring keyword checks, provided your downstream workflow compares datasets and checks run status.
Can I export CSV or Excel?
Yes. Use the dataset export controls or API formats provided by Apify.
Related automation-lab Actors
- Yandex Search Results Scraper for ranked Yandex SERP records.
- Google Search Results Scraper when your workflow also monitors Google.
Use related Actors only when their source and output contract match your research job. Baidu-specific positions from this Actor should not be treated as interchangeable with rankings from another search engine.
Support
When reporting a problem, include:
- the run URL;
- a sanitized input;
- the expected result behavior;
- the observed error or missing field;
- whether the problem is query-specific or affects several queries.
Do not include your Apify token, cookies, or other credentials.