Haodf Scraper: 好大夫在线 Doctor & Hospital Reviews avatar

Haodf Scraper: 好大夫在线 Doctor & Hospital Reviews

Pricing

from $1.88 / 1,000 doctor records

Go to Apify Store
Haodf Scraper: 好大夫在线 Doctor & Hospital Reviews

Haodf Scraper: 好大夫在线 Doctor & Hospital Reviews

Scrape Haodf (好大夫在线) doctor profiles, aggregate reputation stats, and real per-condition patient reviews (effect/attitude/skill ratings, anonymized patient location, dates). No login or API key needed. Includes a new-reviews monitor mode for tracking a shortlist of doctors over time.

Pricing

from $1.88 / 1,000 doctor records

Rating

0.0

(0)

Developer

GetAScraper

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Real patient reviews from 好大夫在线, structured and ready to use
Pull doctor profiles, per-condition patient ratings, and hospital stats from China's largest doctor review platform. No login, no account, no API key, just clean structured data.
🩺 Real per-condition ratings
Effect, attitude, and skill scores broken out by the exact condition each patient was treated for, not one blended average.
🔎 Two ways to target
Auto-discover doctors by medical department, or point the Actor at specific doctor URLs or IDs.
🔔 Monitor mode
Track a shortlist of doctors across repeat runs and get only the reviews that are genuinely new since last check.
🏥 Optional hospital data
Add hospital grade, doctor and faculty counts, and service-patient volume without slowing down a base run.

好大夫在线 (Haodf) is China's largest doctor and hospital review platform, covering hundreds of thousands of doctors across every province and specialty. This Actor turns its public doctor profiles and patient reviews into a clean, structured dataset: no login, no account, and no API key required to run it.

🙋 Why use this Actor

  • I am a hospital marketing manager benchmarking my own doctors' patient recommend scores and review volume against competing hospitals in the same department, so I know where we're actually losing reputation ground.
  • I am a pharma or medical device field rep identifying the highest-volume, highest-rated specialists treating a given condition, so I can prioritize which doctors are worth an outreach visit.
  • I am a medical tourism agency coordinator matching international patients to specialists with a track record of real, patient-reviewed outcomes, instead of relying on a hospital's own marketing copy.
  • I am an academic researcher pulling structured patient review text and ratings at scale for sentiment or health-outcomes research, the same kind of public review corpus that has already been used in published studies analyzing patient sentiment in China.

🚀 How to use it

STEP 1
Choose your doctors
Pick a department to auto-discover doctors, or paste specific doctor URLs or IDs.
STEP 2
Run the Actor
It pulls each doctor's profile, reputation stats, and their most-reviewed conditions.
STEP 3
Get three ready-to-use views
Doctor profiles, individual patient reviews, and department-level breakdowns.

Want to track the same doctors over time instead of a one-off pull? Turn on Only new reviews since last check and rerun the Actor later with the same State name. Only reviews that weren't there last time come back.

📥 Input

FieldTypeRequiredDescription
doctorUrlsarray of URLsNoDirect Haodf doctor profile links or their bare numeric IDs, one per line. The cheapest, most reliable way to target specific doctors. Leave empty to auto-discover doctors from department instead.
departmentenumNoWhich Haodf department directory to auto-discover doctors from, only used when doctorUrls is empty. Defaults to Respiratory Medicine (呼吸内科). Any valid Haodf department slug works, not only the suggested list.
proxyConfigurationobjectNoApify Proxy settings. Defaults to the cheaper datacenter proxy, which was confirmed to reach Haodf's doctor, review, and hospital pages without issue.
includeHospitalDetailsbooleanNoFetch each doctor's hospital page once (deduplicated per hospital) to add hospital grade, total doctor and faculty counts, and service-patient volume. Defaults to false to keep runs fast and cheap.
maxDoctorsintegerNoMaximum number of doctors to scrape in this run, whether sourced from doctorUrls or department auto-discovery. Defaults to 15.
maxDiseaseTagsPerDoctorintegerNoCaps how many of a doctor's most-reviewed conditions get fetched, each one is a separate set of aggregate stats and up to 10 reviews. Defaults to 5.
onlyNewReviewsbooleanNoTurns the run into a monitor: only reviews not seen before for this doctor and condition under stateName are pushed to the Reviews dataset. Defaults to false.
stateNamestringNoName for this tracked doctor set's saved monitor history, so multiple independent trackers (one per client or department, for example) don't overwrite each other. Only relevant when onlyNewReviews is on. Defaults to default.
resetStatebooleanNoClears the saved seen-review history for stateName before the run starts, so every review currently on the page counts as new again. Defaults to false.

📊 Data table

Doctors (default view)

FieldTypeDescription
doctorIdstringThe doctor's numeric Haodf ID.
doctorUrlstringLink to the doctor's public Haodf profile.
namestringDoctor's name.
titlestringProfessional title, for example 主任医师 (Chief Physician) or 副主任医师 (Associate Chief Physician).
hospitalIdstringThe affiliated hospital's Haodf ID.
hospitalNamestringAffiliated hospital name.
hospitalUrlstringLink to the hospital's public Haodf profile.
departmentNamestringDepartment name within the hospital.
departmentUrlstringLink to the department's Haodf page.
specialtystringThe doctor's stated specialty focus.
recommendScorenumberPatient recommend score out of 5, as shown on the doctor's own profile.
totalPatientsHelpednumberCumulative patients-helped count reported on the profile.
totalArticlesnumberNumber of educational articles the doctor has published.
totalThanksAndVotesnumberCombined count of patient thank-you notes and votes.
awardsarray of stringsDoctor of the Year (年度好大夫) awards, one entry per year won.
diseaseTagCountnumberTotal number of condition tags listed on the doctor's profile.
diseaseTagsFetchedarray of stringsWhich of those condition tags this run actually fetched reviews for.

Example output

{
"doctorId": "11908",
"doctorUrl": "https://www.haodf.com/doctor/11908.html",
"name": "王建国",
"title": "主任医师",
"hospitalId": "5678",
"hospitalName": "北京协和医院",
"hospitalUrl": "https://www.haodf.com/hospital/5678.html",
"departmentName": "呼吸内科",
"departmentUrl": "https://www.haodf.com/keshi/xxxxx.html",
"specialty": "支气管哮喘、慢性阻塞性肺疾病诊疗",
"recommendScore": 4.5,
"totalPatientsHelped": 9459,
"totalArticles": 44,
"totalThanksAndVotes": 1213,
"awards": ["2023年度好大夫", "2024年度好大夫"],
"diseaseTagCount": 19,
"diseaseTagsFetched": ["哮喘", "慢性阻塞性肺疾病", "肺结节"]
}

Reviews view

FieldTypeDescription
doctorIdstringThe reviewed doctor's Haodf ID.
doctorNamestringThe reviewed doctor's name.
hospitalNamestringThe doctor's affiliated hospital.
diseaseKeystringInternal slug for the condition this review was left under.
diseaseNamestringCondition name in Chinese, for example 哮喘 (Asthma).
reviewIdstringStable review ID, safe to use as a unique key across runs.
contentstringThe patient's full written review.
effectstringPatient rating of treatment effect.
attitudestringPatient rating of the doctor's attitude.
skillstringPatient rating of the doctor's skill.
remedystringTreatment or remedy context the patient mentioned.
patientProvincestringPatient's province, as pre-anonymized by Haodf itself.
patientCitystringPatient's city, as pre-anonymized by Haodf itself.
reviewDatestringWhen the review was posted.
isNewbooleanTrue when this review was not seen in a prior run under the same monitor state.

Example output

{
"doctorId": "11908",
"doctorName": "王建国",
"hospitalName": "北京协和医院",
"diseaseKey": "xiaochuan",
"diseaseName": "哮喘",
"reviewId": "48213092",
"content": "医生非常耐心,详细解释了病情和用药方案,复诊后症状明显改善。",
"effect": "显效",
"attitude": "很好",
"skill": "很好",
"remedy": "吸入用药调整",
"patientProvince": "北京",
"patientCity": "朝阳",
"reviewDate": "2026-08-02",
"isNew": true
}

Department breakdown view

FieldTypeDescription
dimensionstringWhat this row summarizes, for example department or hospital.
labelstringThe department or hospital name for this row.
doctorCountnumberNumber of doctors scraped under this dimension in the run.
reviewCountnumberNumber of reviews fetched under this dimension in the run.
avgRecommendScorenumberAverage patient recommend score across the doctors in this row.
hospitalGradestringOfficial hospital grade, for example 三甲 (Tier 3A), only present when hospital enrichment is on.
totalDoctorsInHospitalnumberHospital-wide doctor count, only present when hospital enrichment is on.
totalFacultiesInHospitalnumberHospital-wide faculty count, only present when hospital enrichment is on.
servicePatientCountstringHospital-wide cumulative service-patient count, as reported by the hospital's own page.

Example output

{
"dimension": "department",
"label": "呼吸内科",
"doctorCount": 15,
"reviewCount": 63,
"avgRecommendScore": 4.4,
"hospitalGrade": "三甲",
"totalDoctorsInHospital": 312,
"totalFacultiesInHospital": 42,
"servicePatientCount": "1,200,000+"
}

💰 Pricing

Pricing is pay per result, billed on the doctor and review records actually saved to your dataset. Empty runs cost nothing. There are no fixed monthly subscriptions or hidden maintenance fees.

⭐ Enjoying Haodf Scraper?

⭐ ⭐ ⭐ ⭐ ⭐
If this saved you hours of manually checking doctor pages one by one, let us know.
A 5-star rating takes 10 seconds and helps other hospital marketing teams and field researchers find this Actor. Your feedback also tells us what to build next.
★  Rate this Actor on Apify

💡 Tips

  • Start with a low maxDoctors and maxDiseaseTagsPerDoctor to see the shape of the data before scaling up to a full department.
  • Turn on includeHospitalDetails only when you actually need hospital-level context. It adds one extra request per unique hospital, not per doctor.
  • For ongoing tracking, give each tracked doctor set its own stateName so a hospital-benchmarking tracker and a KOL-monitoring tracker never overwrite each other's history.

❓ FAQ

好大夫在线怎么爬取医生评价数据?

You can pull doctor profiles and patient reviews from 好大夫在线 with this Actor. Point it at a department or specific doctor links, run it, and get structured doctor, review, and hospital data back with no login required.

如何查询医生的患者推荐度?

Each doctor record includes recommendScore, the patient recommend score shown on the doctor's own Haodf profile, along with total patients helped and total patient thanks and votes for further context.

Does this Actor need a Haodf account or login?

No. Every page this Actor reads is public. It never logs in, uses a cookie, or requires an API key from Haodf or from you.

Does it extract patient names or private contact details?

No. Haodf pre-anonymizes patient reviews itself, showing only province and city, never a name or contact detail. This Actor passes that anonymization through unchanged and never attempts to identify a patient.

How fresh is the data?

Every run reads live pages at request time. There is no cached or pre-scraped snapshot, so results reflect what is on Haodf right now.

Can I track new reviews instead of re-pulling everything each time?

Yes. Turn on onlyNewReviews and rerun the Actor later against the same doctors and stateName. Only reviews that are new since the last run are returned.

🔗 Other actors