Taobao Product Scraper
Pricing
from $3.49 / 1,000 product detail results
Taobao Product Scraper
Extract detailed product data from Taobao, including title, price, reviews, specifications, images, options, and categories. Perfect for market research, e-commerce insights, and data-driven decision-making
Pricing
from $3.49 / 1,000 product detail results
Rating
0.0
(0)
Developer
Pizani
Maintained by CommunityActor stats
7
Bookmarked
11K
Total users
1.5K
Monthly active users
3 days ago
Last modified
Categories
Features
Share
🛒 Taobao Product Scraper
This Actor extracts product data from Taobao and returns a clean, ready-to-use JSON — in English, with prices in USD and CNY. Runs are fast and cheap.
✨ What it does
- Accepts a Taobao product_url (or a bare item ID).
- Extracts the title in English, price (USD + CNY), images, description images and the full SKU matrix with per-variant price and stock.
- Collects store data (name and identifier).
- Pushes the result to the Dataset (Output tab).
🎯 What makes it different
| Typical Taobao scrapers | This Actor | |
|---|---|---|
| Title | Chinese only | English |
| Prices | CNY only | USD + CNY |
| Variants | raw property IDs | readable names: Teal Crewneck Top with Logo / S |
| Description images | mixed with tracking pixels | cleaned: pixels and duplicates removed |
🔧 Input
{"product_url": "https://item.taobao.com/item.htm?id=692815138312"}
| Field | Required | Description |
|---|---|---|
product_url | ✅ | Product URL or bare item ID. |
🧾 Example Output
{"sellerInfo": {"shopTitle": "A电遇体育服饰","shopID": "WjezfuSxHYYdOd7CrwSBcoNH","shopLink": null},"productInfo": {"urlproduct": "https://item.taobao.com/item.htm?id=692815138312","itemId": "692815138312","title": "Retro Brazilian Sports Fan Jersey Round Neck Lapel Polo Half-Length Football Uniform Warm-Up Training Uniform","titleCN": null,"price": "11.78","priceCurrency": "USD","priceCNY": "68.00","originalPriceCNY": null,"imgList": ["https://img.alicdn.com/...png", "... 4 more ..."],"descriptionImages": ["https://img.alicdn.com/...jpg", "... 10 more ..."],"totalStock": null,"minOrderQuantity": 1,"sevenDayReturn": false,"scrapedAt": "2026-09-21T19:32:35+00:00","atributtes": {},"options": [{"name": "Teal Crewneck Top with Logo / S","imgUrl": "https://img.alicdn.com/...jpg","price": "12.99","priceCNY": "75.00","stock": 17,"skuId": "4915584004117"},"... 139 more ..."]}}
🧩 Field Reference
sellerInfo.shopTitle: Store name.sellerInfo.shopID: Store identifier.sellerInfo.shopLink: Store URL, when available.productInfo.itemId/urlproduct: Numeric Taobao item ID and its canonical URL.productInfo.title: Product title in English.productInfo.titleCN: Original Chinese title, when available.productInfo.price/priceCurrency/priceCNY: Price in USD / currency (alwaysUSD) / price in CNY.productInfo.originalPriceCNY: Crossed-out price —nullunless there is a real discount.productInfo.imgList/descriptionImages: Gallery images / images inside the description (tracking pixels and duplicates removed).productInfo.totalStock: Total stock, when available. Per-variant stock is always inoptions[].stock.productInfo.minOrderQuantity/sevenDayReturn: Minimum order quantity and 7-day return policy.productInfo.atributtes: Spec sheet as key/value, when the listing provides one. Colour/size axes are not repeated here — they are inoptions.productInfo.options[]: Every SKU —name,imgUrl,price,priceCNY,stock,skuId.productInfo.scrapedAt: UTC timestamp of the run.
🛡️ Reliability
A product that cannot be resolved — removed, out of stock, or not supported — is reported as an explicit error rather than an empty row, so you never pay for a blank result.
🛠️ How to use via API
import osimport timeimport jsonimport requestsAPI_TOKEN = "YOUR_APIFY_API_KEY"ACTOR_ID = "pizani~taobao-product-scraper"PRODUCT_URL = "https://item.taobao.com/item.htm?id=692815138312"output_dir = "./scraped_results"os.makedirs(output_dir, exist_ok=True)output_file = os.path.join(output_dir, "product_data.json")run_resp = requests.post(f"https://api.apify.com/v2/acts/{ACTOR_ID}/runs?token={API_TOKEN}",json={"product_url": PRODUCT_URL})run_data = run_resp.json()run_id = run_data.get("data", {}).get("id")if not run_id:raise Exception(f"Failed to start Actor: {run_data}")status_url = f"https://api.apify.com/v2/actor-runs/{run_id}?token={API_TOKEN}"while True:status_resp = requests.get(status_url).json()status = status_resp.get("data", {}).get("status")if status in {"SUCCEEDED", "FAILED", "ABORTED", "TIMED-OUT"}:breaktime.sleep(5)items_url = ("https://api.apify.com/v2/datasets/"f"{status_resp['data']['defaultDatasetId']}"f"/items?clean=true&format=json&token={API_TOKEN}")result = requests.get(items_url).json()with open(output_file, "w", encoding="utf-8") as f:json.dump(result, f, ensure_ascii=False, indent=4)
ℹ️ Notes
- Fields can vary depending on the product: not every listing has a spec sheet, a discount, a Chinese title or SKU images.
priceCNYandpricereflect the listing at the moment of the run.