Mafengwo 马蜂窝 Tours & Tickets Scraper | Prices & Units Sold avatar

Mafengwo 马蜂窝 Tours & Tickets Scraper | Prices & Units Sold

Pricing

from $3.29 / 1,000 products

Go to Apify Store
Mafengwo 马蜂窝 Tours & Tickets Scraper | Prices & Units Sold

Mafengwo 马蜂窝 Tours & Tickets Scraper | Prices & Units Sold

Collect every tour, ticket, pass and day trip a Chinese destination sells on Mafengwo (马蜂窝): prices in yuan, the seller, the attraction IDs each product covers, and sales counts and buyer ratings where the listing carries them. Paste a link, an ID or a city name.

Pricing

from $3.29 / 1,000 products

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Categories

Share

Mafengwo Tours & Tickets Scraper

Mafengwo 马蜂窝 tours and tickets: every tour and ticket Beijing sells, the whole catalogue and not the shop window

Collect the tours, tickets, passes and day trips sold on Mafengwo (马蜂窝) for any Chinese destination. Paste a destination link, a destination ID or a Chinese city name, and export China attraction tickets, day trips and package tours with their prices in yuan, the sellers behind them, sales counts, buyer ratings and the attractions each product covers.

  • The whole catalogue, not the shop window: an attraction's own page shows a short list of what is on sale there. This collects the destination's full inventory. Of the 100 products in Wuhan's catalogue that admit to the Yellow Crane Tower, 14 appear anywhere on that attraction's own page.
  • Real commercial signal: the exact number sold, the buyer rating and review count, the review the listing quotes, the seller behind each product, and any coupon on the price. Sellers fill these in unevenly: of 1,955 products measured across two city catalogues, 35% carried a sales figure and 22% a rating.
  • Every kind of product: tickets and passes, half-day and day trips, multi-day and package tours, private and custom trips, local experiences, guided services, transfers and cruises.
  • Joins onto your place data: each product lists the place IDs it admits to, so a city ticket lines up with the attraction it opens in Mafengwo Places. In Wuhan's 160-product catalogue, 145 carried at least one place ID; the rest belong to no attraction, such as custom trips and transfers.
  • Search the whole of China: add a term such as 温泉 and get matching products from every destination, not just one city.

Measured on the platform: one uncapped run over Beijing saved 1,861 products with no duplicates in 7 minutes 51 seconds, peaking at 59 MiB of the 512 MB default. That is a real run of this actor on Apify, not a local benchmark, and it is not a guaranteed runtime: available products and timings vary by destination and by day. Hero artwork illustrates the Mafengwo app and carries real collected listings; it is not a picture of your results.

Try 10 results in Apify Console

Open in Apify Console and paste this small first input. Charges apply per saved product and per start. Free-plan access: 200 products per run, across 25 runs. This sample does not reproduce the Beijing measurement.

{
"destinations": "https://www.mafengwo.cn/travel-scenic-spot/mafengwo/10065.html",
"maxProducts": 10
}

Built by Zen Studio, also behind Mafengwo Places, Mafengwo Reviews and Ctrip Hotel Prices.

Zen Studio · China Travel & Places  •  What a destination sells, and what travelers say about it
Mafengwo  Tours & Tickets
➤ You are here
  Places
Attractions, hours, ratings
  Reviews
Traveler opinions and photos
  Ctrip Hotel Prices
Room rates by date

Copy to your AI assistant

zen-studio/mafengwo-tours-tickets-scraper on Apify collects the tours, tickets, passes, day trips, local experiences, guided services and transfers sold for a Chinese destination on Mafengwo, with prices in yuan, sellers, sales counts, ratings and the places each product covers. Put destination links, destination IDs or Chinese city names in destinations, one per line, with commas and semicolons also separating but spaces not; place links are rejected because the catalogue is published per destination, and romanised city names usually do not resolve. startUrls takes structured destination links and is merged with destinations, neither taking precedence. For products from every city at once put Chinese search terms in keywords: each term searches the whole catalogue, has its own maxProducts allowance, is not counted against maxDestinations, runs alongside the other lanes, is capped at 50 terms per run, and a run can use terms alone with no destination. Leave productTypes empty for every kind, which is also the fastest full collection; selecting types walks each separately and saves a shared product once. maxProducts defaults to 200 per destination and per term and is what decides the bill; 0 collects everything a destination has, about 1,850 for a large city. maxDestinations defaults to 5. Text is Chinese and prices are in yuan; priceIsFrom=true marks a starting price with dearer options behind it, and there is no per-date availability, no per-person breakdown and no hotels or flights. Fields are filled unevenly, about a third of products carry soldCount and a fifth carry rating, and an unfilled field arrives as null or an empty list rather than being dropped. placeIds matches the place IDs of zen-studio/mafengwo-poi-scraper, while destinationIds and departureDestinationIds are the geographic hierarchy a product is filed under (continent, country, province, city, district) in the same ID space as this actor's input, not a list of places visited. Numeric codes such as refundType, bookingType and sellerType are the source's own; the readable wording appears in bookingText and tags where the source provides any. Charges are per saved product plus one actor start, with no dataset-item charge, and a product found twice in a run is saved and charged once; free-plan access is 200 products/run across 25 runs. Input: https://apify.com/zen-studio/mafengwo-tours-tickets-scraper/input-schema ; output and behavior: https://apify.com/zen-studio/mafengwo-tours-tickets-scraper ; current charges: https://apify.com/zen-studio/mafengwo-tours-tickets-scraper/pricing .

How to scrape Mafengwo tours and tickets

Put one destination per line in the paste box. Three forms work and can be mixed:

{
"destinations": "https://www.mafengwo.cn/travel-scenic-spot/mafengwo/10133.html\n10065\n杭州",
"maxProducts": 200,
"maxDestinations": 5
}
  • A destination link, for example https://www.mafengwo.cn/travel-scenic-spot/mafengwo/10133.html.
  • A destination ID, for example 10065.
  • A city name in Chinese, for example 杭州. Names are matched in Chinese; a romanised name usually does not match, and a name that turns out to be a place rather than a city is reported rather than guessed at.

Newlines, commas and semicolons all separate entries. Spaces do not, so a multi-word name stays one entry. Anything that does not resolve to a destination is skipped and reported at the start of the run.

Place links are deliberately rejected. Tours and tickets are published per destination, so accepting a place link would quietly collect a whole city under the name of one attraction. To find products for a single attraction, put its name in Search terms.

Search the whole catalogue

{
"keywords": "黄鹤楼\n温泉",
"maxProducts": 50
}

Each term searches every destination rather than one city: a 温泉 search returned products sold from Kunming, Heishui and Lixian in the same run. Each term gets its own product allowance and is processed alongside the others, so the work grows with the number of terms: up to 50 terms are used per run, and anything beyond that is left out with a note in the log. Terms are not counted against Maximum destinations, and a run can use search terms on their own, with no destination at all.

Narrow by product type

{
"destinations": "10133",
"productTypes": ["ticket", "one_day_tour"],
"maxProducts": 100
}

Leaving Product types empty collects every kind and is the fastest way to take a destination in full. Choosing types collects each one separately; a product that appears under two types is saved once, and a type that fails part-way does not stop the others.

Inputs

InputTypeDefaultWhat it does
destinationsstringnoneDestination links, IDs or Chinese city names, one per line. Commas and semicolons also separate entries; spaces do not, so multi-word names survive.
startUrlsarraynoneOptional structured list of destination links, combined with the paste box and deduplicated. File-based lists are not supported.
keywordsstringnoneOptional Chinese search terms, one per line. Each searches the whole catalogue and has its own product allowance. Up to 50 terms per run.
productTypesarrayall typescustomized, one_day_tour, multi_day_tour, ticket, local_play, cruise, package_tour. Empty collects every kind.
maxProductsinteger200Products to save for each destination and each search term. 0 collects everything available.
maxDestinationsinteger5How many destinations to process. Search terms are not counted against it.

Supply at least one destination or one search term. Everything else is optional.

What data can you extract from Mafengwo tours and tickets?

One row per product, 50 fields, every one of them exported to JSON, CSV or Excel.

FieldsContent
productId, title, url, imageIdentity, the Chinese product name as listed, its link and its photo at full resolution.
productType, productTypeIdWhat kind of product it is, for example 一日游 (day trip), 通票/年票 (pass), 游轮 (cruise) or 自由行定制 (custom trip), plus the numeric code behind it.
price, priceText, priceIsFromThe price in yuan with its decimals, the price as travelers see it (¥138起), and whether it is a starting price with dearer options behind it.
discounts, discountText, couponTextThe discount and coupon labels shown on the price.
soldCount, soldText, soldMonthCount, primarySoldCountHow many have sold, both as an exact number and as the banded label travelers see (已售1000+), plus two further counters: soldMonthCount, which usually repeats the total, and the much smaller primarySoldCount. About a third of listings publish a sales figure at all.
rating, reviewCount, reviewCountText, topReviewBuyer rating out of five, the review count, and the review the listing quotes. Around a fifth of listings carry a rating and fewer quote a review; the rest arrive empty.
viewCount, favoriteCountHow many views and saves the listing reports. Many listings report 0 views rather than a count.
sellerId, sellerName, sellerTypeWho sells it, and the numeric code for the kind of seller.
highlights, tagsThe selling points listed on the product and the short labels shown beside it.
bookingType, bookingText, refundTypeHow soon it can be used, for example 可订明日 (bookable tomorrow), and the numeric codes for its booking and refund terms.
departureText, departureLabel, departureDestinationIdsWhere and when it departs, for example 武汉出发 (from Wuhan), and the departure destinations.
tripDays, tripNightsHow many days and nights a trip lasts.
destinationName, destinationIds, departureDestinationIdsThe destination it is sold for, plus the geographic hierarchy it is filed under and the one it departs from, as destination IDs. The Wuhan ticket below carries 21536 (中国, China), 52314 (亚洲, Asia), 14731 (湖北, Hubei) and 10133 (武汉, Wuhan), so these are a hierarchy rather than a list of places the trip visits. They use the same ID space as this actor's own input, so any of them can be pasted back in to collect that destination's catalogue.
placeIdsThe attractions the product admits to, matching the place IDs in Mafengwo Places, so a ticket lines up with the attraction it opens. A multi-place pass lists every attraction it covers; 77.7% of products measured carry at least one.
hasVideo, isQuality, isQualityGoods, isRecommended, isInternational, isGroupBooking, groupBookingStatus, isOnSaleThe listing's own markers: video, quality picks, recommendations, group booking and whether it is still on sale.
sourceDestinationId, sourceKeyword, scrapedAt, additionalDataWhich destination or search term reached it, when it was collected, and any source fields without a column of their own.

A real row, from Wuhan:

{
"productId": "2326423",
"title": "湖北武汉 黄鹤楼景区电子门票( 诗词绝句中的江南名楼)",
"productType": "景区/场馆",
"productTypeId": 11,
"price": 74.0,
"priceText": "¥74起",
"priceIsFrom": true,
"soldCount": 572,
"soldText": "已售500+",
"soldMonthCount": 572,
"primarySoldCount": 2,
"rating": 4.5,
"reviewCount": 8,
"reviewCountText": "8评价",
"topReview": "七月流火,八月流金,八月末的武汉依旧酷热,但登上黄鹤楼,阵阵微风拂过,倍感凉爽!",
"viewCount": 4104,
"favoriteCount": 59,
"sellerId": "51851",
"sellerName": "四季阳光",
"sellerType": 2,
"highlights": ["江南三大名楼", "武汉市标志性建筑", "登楼远眺武汉美景"],
"tags": ["随时退", "可订明日", "江南三大名楼", "武汉市标志性建筑", "登楼远眺武汉美景"],
"discounts": [],
"discountText": null,
"couponText": null,
"bookingType": 1,
"bookingText": "可订明日",
"refundType": 1,
"departureText": null,
"departureLabel": "武汉",
"tripDays": null,
"tripNights": null,
"destinationName": "武汉",
"destinationIds": ["21536", "10133", "52314", "14731"],
"departureDestinationIds": [],
"placeIds": ["5426285"],
"image": "https://sales.mafengwo.net/mfs/s18/M00/85/39/CoUBYGBxHR6AHgIeAA6F8L2QxMI03.jpeg",
"url": "https://m.mafengwo.cn/nb/public/sharejump.php?type=9&id=2326423",
"hasVideo": false,
"isQuality": false,
"isQualityGoods": false,
"isRecommended": false,
"isInternational": false,
"isGroupBooking": false,
"groupBookingStatus": 0,
"isOnSale": true,
"sourceDestinationId": 10133,
"sourceKeyword": null,
"additionalData": {"dacu_status": 0},
"scrapedAt": "2026-09-21T06:51:38.013249+00:00"
}

That row is a single attraction ticket. A guided trip fills the columns a ticket leaves empty, so here is a second real row, a six-day tour found through the search term 温泉 rather than through a destination:

{
"productId": "6640686",
"title": "【纯玩无自费】昆明+腾冲+瑞丽+芒市6日(含云南省内双程动车+杜鹃王森林温泉+勐焕大金塔+一寨两国+北海湿地/银杏村+热海大滚锅+和顺古镇)",
"productType": "多日游",
"productTypeId": 20,
"price": 2130.0,
"priceText": "¥2130起",
"priceIsFrom": true,
"soldCount": 6607,
"soldText": "已售6000+",
"soldMonthCount": 6607,
"primarySoldCount": 8,
"rating": 5.0,
"reviewCount": 2596,
"reviewCountText": "2596评价",
"topReview": "行程安排没有任何问题,景点都留给我们充足的时间,游玩的比较轻松舒服,整个行程都很",
"viewCount": 0,
"favoriteCount": 5829,
"sellerId": "62510",
"sellerName": "升升旅行",
"sellerType": 2,
"highlights": [
"全程高端品质酒店",
"提前预订优惠越多",
"优秀导游贴心服务",
"特色美食一网打尽"
],
"tags": [
"马蜂窝优选",
"可订明日",
"全程高端品质酒店",
"提前预订优惠越多",
"优秀导游贴心服务",
"特色美食一网打尽"
],
"discounts": [
"券"
],
"discountText": null,
"couponText": "券",
"bookingType": 1,
"bookingText": "可订明日",
"refundType": 2,
"departureText": null,
"departureLabel": "昆明出发",
"tripDays": 6,
"tripNights": null,
"destinationName": "昆明",
"destinationIds": [
"21536",
"15812",
"12711",
"10807",
"19625",
"24185",
"52314",
"30426",
"10651",
"14957"
],
"departureDestinationIds": [
"21536",
"10807",
"12711",
"52314"
],
"placeIds": [
"956",
"1492",
"2769",
"2775",
"2778",
"2993",
"18507",
"18513",
"19779",
"36041",
"36045",
"6330819",
"33622936",
"33638124",
"70049116",
"71456984",
"73884464"
],
"image": "https://sales.mafengwo.net/img/74/ac/96f3660dc6f641164b63376872b15968.jpeg",
"url": "https://m.mafengwo.cn/nb/public/sharejump.php?type=9&id=6640686",
"hasVideo": false,
"isQuality": true,
"isQualityGoods": false,
"isRecommended": false,
"isInternational": false,
"isGroupBooking": false,
"groupBookingStatus": 0,
"isOnSale": true,
"sourceDestinationId": null,
"sourceKeyword": "温泉",
"additionalData": {
"dacu_status": 0
},
"scrapedAt": "2026-09-21T06:51:28.725966+00:00"
}

Between them the two rows populate 47 of the 50 columns. tripDays is filled on 92.8% of the 1,955 products measured and departureDestinationIds on 77.0%, so a ticket-only example would have understated what a normal export looks like. Three columns stay empty in both rows: departureText, the dated departure window, which 38.3% of products carry and these two happen not to, and discountText (1.2%) and tripNights (0.9%), which are genuinely rare.

placeIds is the join: 5426285 is 黄鹤楼 (Yellow Crane Tower) in Mafengwo Places. A multi-place pass lists every attraction it opens, sometimes dozens of them.

Text is in Chinese, as travelers see it. Prices are in yuan and keep their decimals. priceIsFrom says whether the price is a starting price with dearer options behind it. Numeric codes such as bookingType and refundType are kept as the source states them, next to the readable label where one exists (bookingText). A field the listing does not fill arrives as null or an empty list rather than being dropped, so every row has the same 50 columns.

Download the dataset as JSON, CSV or Excel. JSON keeps the nested lists intact: highlights, tags, discounts, destinationIds, departureDestinationIds, placeIds and additionalData. The largest row measured was 2.6 KB, so even a full destination export stays small.

Travel price intelligence, OTA monitoring and tourism research

  • Price a destination. Every ticket and tour on sale for a city, with what each one sold, in one export, instead of the shortlist each attraction shows.
  • Monitor the competition. Which sellers list a destination, how many products each one runs, what they charge and where they discount.
  • Find the demand. soldCount and favoriteCount rank products by what travelers actually book, not by what is promoted.
  • Join tickets to attractions. placeIds lines products up with place records, so an attraction's real market price sits next to its rating and opening hours.
  • Watch discounting. couponText, discounts and priceIsFrom show where a seller is cutting price.
  • Research Chinese tourism. Ticket and tour prices across Chinese destinations, in one consistent shape, for inbound-tourism and pricing studies that otherwise need a city-by-city collection by hand.

Track prices on a schedule

Save your input as an Apify task and set a schedule to revisit the same destinations daily or weekly. Each run produces its own dataset; compare productId against price, couponText and soldCount to see what moved. The actor holds no change history of its own and sends no alerts, so keep the datasets you want to compare.

Pricing

Every saved product is one billable result. Nothing is charged for a destination that returns no products, and a product found twice in one run is saved and charged once.

Apify planPer 1,000 saved products
Free / Starter$3.99
Scale$3.79
Business and higher$3.29

Actor starts cost $0.0049 per GB of selected memory, with a minimum of one start event. At the 512 MB default that is one start event per run. So 200 products from one destination cost $0.8029 at the base rate: $0.798 for the products plus $0.0049 to start. The full Beijing catalogue measured above, 1,861 products, costs $7.43. There is no separate dataset charge. A run that saves nothing still incurs the start charge.

See the Pricing tab for the current rates and plan discounts. Set a spending limit before collecting several large destinations at maxProducts: 0.

Free-plan users can preview up to 200 products per run, across at most 25 runs. This is an access allowance, not a waiver of the displayed charges.

Notes and limits

  • Chinese text. Titles, product types and quoted reviews are in Chinese. Translate downstream if you need English.
  • A listing, not a booking system. Rows are what the catalogue publishes: the starting price, the seller, the terms and the sales figures. Per-date availability and per-person breakdowns are not part of a catalogue row.
  • Availability moves. Products are added and withdrawn daily, and sales figures update. Two runs a week apart will differ.
  • Destination names, not place names. A name in the destination box must be a city or region. Put an attraction name in Search terms.
  • Search terms multiply the work. Each term collects up to its own maxProducts, so ten terms can cost ten times one destination. Your spending limit and the free-plan allowance still apply.

FAQ

Can I scrape one attraction's tickets?

Put its name in Search terms. A destination link collects the whole city, which is usually what you want, because the same ticket is often sold inside city passes and day trips.

Why are there more products than the attraction's own page shows?

An attraction's page shows a curated shortlist. The destination catalogue is the inventory behind it, and it is several times deeper: 100 products in Wuhan's catalogue admit to the Yellow Crane Tower, and 14 of them appear anywhere on that attraction's own page.

How much does a run cost?

$0.00399 per saved product on the Free and Starter plans, less on higher plans, plus $0.0049 to start the run. A 200-product run from one destination is $0.8029; the full 1,861-product Beijing catalogue is $7.43. maxProducts is the setting that decides the bill, so start small and raise it.

Is the data in Chinese?

Titles, product types, tags, highlights and the quoted review are in Chinese, exactly as travelers see them. Prices, counts, ratings, dates, IDs and flags are language-neutral. Translate the text fields downstream if you need English.

Can I run this on a schedule to track price changes?

Yes. Save the input as a task and give it a schedule. Each run writes its own dataset, so you compare runs yourself on productId. Prices, coupons and sales counts all move, which is what makes a weekly series worth keeping.

Where do I find a destination ID?

It is the number in the destination's own link: https://www.mafengwo.cn/travel-scenic-spot/mafengwo/10065.html is destination 10065. You never have to look one up, because a link or a Chinese city name works just as well, and every saved row carries sourceDestinationId and destinationIds for the next run.

Can I type a city name in English?

Names are matched in Chinese, so type 北京 rather than Beijing. A romanised name usually does not match. If you only have the English name, paste the destination link or its ID instead. Anything that does not resolve is reported at the start of the run rather than guessed at.

How is this different from Mafengwo Places?

Mafengwo Places returns the attraction itself: its identity, hours, rating, photos and the short list of tickets shown on its page. This returns the destination's whole bookable catalogue, which is several times larger, and includes the products that belong to no attraction at all, such as custom trips, cruises and transfers. placeIds joins the two together.

Is the price what a traveler pays?

It is the price the listing advertises. When priceIsFrom is true, that price is a starting price, and dearer dates, options or party sizes sit behind it. Treat price as the entry point of a product's price range rather than as a single checkout total.

Can I get prices for a specific date?

No. The catalogue publishes a product's starting price, not a per-date price or a per-person breakdown, so there is no date to select and no availability calendar in the output.

How current are the sales figures?

They are what the listing reports at the moment it was collected, and scrapedAt records that moment. soldCount is the exact total behind the banded label travelers see in soldText (已售500+); soldMonthCount usually repeats that total and primarySoldCount is a much smaller counter published alongside it. About a third of listings publish a sales figure at all. All of them move, so run on a schedule if you want a series.

Can I search all of China instead of one city at a time?

Yes, that is what Search terms does. A term such as 温泉 or 黄鹤楼 searches the whole catalogue and returns matching products whichever destination sells them. Terms have their own product allowance and are not counted against Maximum destinations, and a run can use terms alone with no destination at all. Up to 50 terms are used per run.

Does it cover hotels or flights?

No. This collects what a destination sells as tours, tickets, passes, day trips, experiences, guided services, transfers and cruises. For hotel rates, use Ctrip Hotel Prices; for Mafengwo's hotel and attraction records, use Mafengwo Places.

How deep does one destination go?

Until it runs out. A large city measured 1,861 products in one uncapped run; a small destination may have a handful. Use maxProducts: 0 for everything.

Are products repeated across destinations?

A product can be listed under several destinations and can match several search terms. Within one run it is saved and charged once, and sourceDestinationId or sourceKeyword records which destination or term reached it first.

Is a login needed?

No. Everything collected here is public.

More Zen Studio scrapers for Chinese platforms

🛒 E-commerce

🎬 Short-video & social

🏠 Real estate & autos

🧭 Travel & maps

Support

Use this actor's Issues tab for bugs and feature requests. Include the input and run link so Zen Studio can reproduce the problem. Avoid posting credentials or private data.

What a Chinese destination actually sells, with prices, sellers and sales figures.