JD.com Product Scraper — Bulk SKU & URL Details
Pricing
from $1.00 / 1,000 results
JD.com Product Scraper — Bulk SKU & URL Details
Scrape JD.com product pages by SKU or URL — titles, prices when exposed, images, shop metadata. Unofficial — not affiliated with JD.com.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Bakos Bence
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
What does JD.com Product Scraper do?
Output: every row has name and source. price is filled whenever a public source exposes it (mobile SSR, then gwdang history/same-SKU, then JD price API). Unpriced products are still emitted — no skip filter.
Unofficial. This Actor is not affiliated with, endorsed by, or maintained by JD.com / Jingdong. It reads public product pages only — no login, no account cookies.
Dashboards: connect Power BI, Tableau, Looker Studio, or Qlik to the dataset API — see Export to Power BI, Tableau, Looker Studio & Qlik near the end. AI agents: paste this Actor’s Store page URL into an Apify-capable agent (MCP / Claude / Cursor with Apify), create an Apify account and API token once, and the agent can run the Actor and wire up the output.
Related: Shopify Products Scraper · eMAG Product Scraper
Why use this JD.com scraper?
- ⚡ Fast HTTP path (
curl_cffiTLS impersonation) — no headless browser - 📦 Bulk SKU lists +
item.jd.com/ mobile product URLs - 🔑 Input aliases (
skuIds/skus,startUrls/productUrls) — clone-compatible withpiotrv1001/jd-com-product-scraperandautomation-lab/jd-com-product-scraper - 💴 Prices kept with currency (CNY) when the public page exposes them
- 🖼️ Full image gallery URLs normalized to JD CDN
What data can you extract?
Public product fields from JD mobile product HTML: SKU ID, title, brand / brand ID, shop ID / name, vendor ID, category IDs, main image + gallery, product area, weight, SKU status, desktop + mobile URLs, scrape timestamp. Live list/sale prices appear only when JD embeds them in the public HTML for that request (geo / session dependent).
Use cases
- Catalog enrichment from known JD SKU lists
- Assortment / brand tracking on JD.com
- Competitor product snapshots for China retail research
- Image + metadata feeds for matching pipelines
How to scrape JD.com products
- Open this Actor in Apify Console.
- Click Start on the prefilled SKUs (
maxItems2). Keep Residential + JP proxy. - Or paste your own SKU IDs /
https://item.jd.com/{sku}.htmlURLs. - Export JSON/CSV from the dataset, or open the Issues tab on this Store page if a run fails.
{"skuIds": ["100012043978", "100026667942"],"maxItems": 2,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "JP"}}
Sample output
{"skuId": "100012043978","title": "茅台飞天 53%vol 500ml 贵州茅台酒(带杯)【需预约购买】","shortTitle": "【酒厂直供】茅台飞天53度单瓶装","brand": "茅台","shopName": "贵州茅台","shopType": "KA店铺","price": 1041.0,"currency": "CNY","barcode": "6902952880294","sellPoint": "荣耀传承|国货匠心","variantCount": 16,"stockStateLabel": "in_stock","stockQuantity": 125,"deliveryPromise": "18:00前付款,预计明天(09月01日)送达","weightKg": 1.1,"url": "https://item.jd.com/100012043978.html","mobileUrl": "https://item.m.jd.com/product/100012043978.html","source": "jd.com"}
Input
| Field | Required | Description |
|---|---|---|
skuIds / skus | one of | Numeric JD SKU IDs |
startUrls / productUrls | one of | item.jd.com or mobile product URLs |
maxItems | no | Cap rows (prefill 2) |
maxRetries | no | Per-SKU retries (default 3) |
proxyConfiguration | recommended | Residential JP on Apify |
expandRelated | no | Follow related SKUs until maxItems |
enrichComments | no | Best-effort public comment aggregates (often blocked) |
enrichAggregator | no | Public 购物党 APIs → priceCompare (brand/class + cross-offers) |
Pricing
See the Pricing tab on this Actor’s Store page (Free vs paid plans differ). Platform usage is configured separately in Console monetization.
Limitations
- Desktop
item.jd.compages are often JS shells; this Actor uses mobile product HTML, which carries the product JSON. - Real-time price microservices are frequently blocked for proxy traffic. When price is not in the public HTML,
priceisnull— we do not bypass login or inject account cookies. - Aggressive concurrency without residential proxies can trigger JD risk control (local datacenter IPs often get a ~2.7KB verify shell). On Apify Residential JP, stress tests held 0 challenges through concurrency 24 (~2.5 products/s for 60 SKUs). Prefer
maxConcurrency12–24; drop to 6–8 ifchallengesin OUTPUT.stats rises. expandRelatedonly grows within the SKU neighborhood found in product HTML — it is not a full-catalog crawler.- Review bodies / author profiles are never scraped (PII). Optional
enrichCommentstries public count/rate JSON only; club APIs often return busy/blocked. - Graphic description HTML, live coupon lists, and Q&A are usually lazy API modules — not in mobile SSR; left null when absent.
- Optional
enrichAggregatoruses public 购物党 (gwdang) browser endpoints (brwext/prepare,brwext/dp_query_latest) for brand/class labels and cross-offer prices. Price-history (tip_new) is often rate-limited.
Legal
Public product facts only. No personal data of natural persons. No login / paywall bypass. Not affiliated with JD.com.
Export to Power BI, Tableau, Looker Studio & Qlik
Use the run’s dataset items API URL as a web data source in your BI tool. Authenticate with your Apify API token. Schedule the Actor, then refresh the dataset in the BI tool on the same cadence.