Weidian Products Scraper avatar

Weidian Products Scraper

Pricing

from $2.40 / 1,000 product extracteds

Go to Apify Store
Weidian Products Scraper

Weidian Products Scraper

Fetch public Weidian item URLs and export product identity, CNY prices, images, collection signals, seller context, variants, stock, and availability.

Pricing

from $2.40 / 1,000 product extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Extract Weidian products from supplied public item URLs. Get product identity, current CNY price, original price, images, collection signals, seller context, stock, normalized availability, and exposed SKU variants in a structured Apify dataset.

The Actor is designed for repeatable China-commerce sourcing checks and price or availability snapshots. It does not crawl whole shops or search Weidian.

What the Actor does

For every accepted public product URL, the Actor:

  1. validates each Weidian item URL and canonicalizes its item ID;
  2. fetches the public item page;
  3. reads Weidian's embedded structured product state;
  4. normalizes product, seller, collection, image, and availability fields;
  5. optionally includes SKU-level prices and stock;
  6. saves one product record to the default dataset.

Duplicate item IDs are fetched once. Invalid URLs fail clearly instead of creating misleading empty records.

Who is it for?

  • sourcing teams checking candidate products before placing orders;
  • resellers comparing a saved list of Weidian offers;
  • catalog teams importing product identity, prices, and media;
  • analysts collecting collection and availability signals;
  • automation teams scheduling recurring product snapshots;
  • developers feeding Weidian product records into spreadsheets or databases.

Why use this Actor

The output combines fields that otherwise require inspecting several parts of a product page:

  • canonical product identity and URL;
  • current and original CNY prices;
  • product-level stock and normalized availability;
  • product collection count and displayed sales text;
  • primary image and full image list;
  • seller identity, URL, and shop collection count;
  • optional SKU prices, stock, images, and availability;
  • a UTC extraction timestamp for snapshot comparison.

The implementation uses embedded structured page data rather than brittle visual selectors. It remains intentionally narrow: supplied products only.

Extracted data

FieldMeaning
itemIdWeidian numeric product ID
urlCanonical public product URL
titleProduct title displayed by Weidian
priceCurrent or lowest exposed price in CNY
originalPriceOriginal displayed price when exposed
currencyCNY
isAvailableNormalized purchase availability
stockProduct-level exposed stock
availabilityStatusavailable, out_of_stock, off_shelf, deleted, invalid, not_sellable, or unknown
soldTextWeidian's displayed sales signal
collectCountProduct collection/favorite count
isCollectedByCurrentSessionAnonymous session collection state
primaryImageUrlMain product image
imageUrlsAll exposed product images
shopId, shopName, shopUrlSeller context
shopCollectCountShop collection/follower signal
variantsOptional exposed SKU details
scrapedAtUTC extraction timestamp

Fields may be null when Weidian does not expose them for a particular item.

Getting started

  1. Open the Actor in Apify Console.
  2. Add one or more public Weidian item URLs to Weidian product URLs.
  3. Keep Include variants enabled for SKU-level stock and prices.
  4. Set Maximum products to cap the run.
  5. Click Start.
  6. Open the default dataset or export it as JSON, CSV, Excel, or XML.

A valid URL looks like:

https://weidian.com/item.html?itemID=7331453669

Input parameters

startUrls

Required array of public Weidian item URLs. Supported hostnames are weidian.com and its subdomains, and the URL must contain a numeric itemID query parameter.

maxItems

Maximum number of unique supplied products to process. Default: 100. Allowed range: 1 to 1000. This is a safety and billing cap; it does not make the Actor discover products.

includeVariants

When true (the default), each product includes the SKU variants exposed in the public page state. Disable it for a smaller product-level monitoring payload.

Example input: one complete product

{
"startUrls": [
{ "url": "https://weidian.com/item.html?itemID=7331453669" }
],
"maxItems": 1,
"includeVariants": true
}

Example input: compact price comparison

{
"startUrls": [
{ "url": "https://weidian.com/item.html?itemID=4281670129" },
{ "url": "https://weidian.com/item.html?itemID=7331453669" }
],
"maxItems": 2,
"includeVariants": false
}

Output example

The exact title, price, stock, and signals change at the source. A current run returns this shape:

{
"itemId": "7331453669",
"url": "https://weidian.com/item.html?itemID=7331453669",
"title": "Product title displayed by Weidian",
"price": 210,
"originalPrice": 210,
"currency": "CNY",
"isAvailable": true,
"stock": 9986,
"availabilityStatus": "available",
"soldText": "销量 4",
"collectCount": 2,
"isCollectedByCurrentSession": false,
"primaryImageUrl": "https://si.geilicdn.com/product-image.jpg",
"imageUrls": ["https://si.geilicdn.com/product-image.jpg"],
"shopId": "1826085585",
"shopName": "Seller shop name",
"shopUrl": "https://weidian.com/?userid=1826085585",
"shopCollectCount": 32683,
"variants": [
{
"id": "124463963907",
"title": "36",
"price": 210,
"originalPrice": 210,
"stock": 666,
"imageUrl": null,
"attributeIds": ["9567175262"],
"isAvailable": true
}
],
"scrapedAt": "2026-01-15T12:00:00.000Z"
}

How much does it cost to extract Weidian products?

Pricing is pay per event:

  • $0.00005 once when a run starts;
  • $0.004 per product on the BRONZE tier;
  • lower per-product prices are available on higher Apify subscription tiers.

Approximate BRONZE examples:

ProductsBRONZE charge calculation
11 × $0.004 + $0.00005 start
1010 × $0.004 + $0.00005 start
100100 × $0.004 + $0.00005 start
1,0001,000 × $0.004 + $0.00005 start

Only successfully saved product records receive the product charge. Duplicate input IDs are processed once. Apify may also enforce your run spending limit.

Recurring price and availability monitoring

Save a stable list of item URLs and schedule the Actor daily or weekly. Each record includes itemId and scrapedAt, so downstream automation can join snapshots and detect:

  • current price changes;
  • items moving on or off shelf;
  • stock changes;
  • newly exposed or unavailable variants;
  • collection-count changes;
  • seller context changes.

The Actor produces snapshots, not alerts or a built-in historical database. Use Apify schedules, webhooks, dataset exports, or your own storage to compare runs.

Spreadsheet and data-pipeline workflows

After a run, export the dataset to CSV or Excel for a sourcing review. For an automated pipeline, attach an Apify webhook or fetch the default dataset through the API. Stable itemId values are the recommended join key.

When variants are enabled, they remain nested JSON. Choose JSON for full fidelity or flatten the variants array in your destination tool.

API usage with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~weidian-products-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://weidian.com/item.html?itemID=7331453669"}],
"maxItems": 1,
"includeVariants": true
}'

Use the returned run ID to inspect status and retrieve the default dataset. Never commit your Apify token to source control.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/weidian-products-scraper').call({
startUrls: [{ url: 'https://weidian.com/item.html?itemID=7331453669' }],
maxItems: 1,
includeVariants: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/weidian-products-scraper').call(run_input={
'startUrls': [{'url': 'https://weidian.com/item.html?itemID=7331453669'}],
'maxItems': 1,
'includeVariants': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0])

Use through MCP

Add the Actor to Claude Code through Apify's MCP endpoint:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/weidian-products-scraper"

Claude Desktop, Cursor, and VS Code setup

Use this equivalent configuration in Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/weidian-products-scraper"
}
}
}

Example prompts:

  • “Extract price, stock, and collection count for these Weidian item URLs.”
  • “Fetch this sourcing list with variants and return unavailable SKUs.”
  • “Run the Weidian product snapshot and summarize products that are off shelf.”

Reliability and retries

The Actor makes direct bounded HTTP requests to public product pages and reads embedded structured state. Transient network errors, HTTP 408/429, and temporary 5xx responses are retried up to two times.

Stable invalid URLs, unsupported domains, missing product state, deleted page shapes, and malformed upstream data fail explicitly. This prevents a blocked or broken response from being presented as a successful empty dataset.

Limits

  • Only supplied public product URLs are supported.
  • Shop URLs, keyword search, and whole-shop catalog discovery are not supported.
  • Output reflects what Weidian exposes at extraction time.
  • Some products may omit stock, sales, collection, seller, or variant fields.
  • Product titles may be Chinese, English, or seller-provided mixed language.
  • Prices are returned in CNY and are not converted.
  • The Actor does not download image files; it exports source image URLs.
  • Weidian can change its public page structure without notice.

Legality and responsible use

Use the Actor only for public data you are authorized to collect. Follow Weidian's terms, applicable laws, and your contractual obligations. Avoid collecting unnecessary personal information, do not use output for prohibited profiling, and apply suitable retention and access controls.

Product availability and price data can change quickly. Verify critical purchasing decisions at the source.

Troubleshooting

“Weidian URL must contain a numeric itemID”

Use a product URL such as https://weidian.com/item.html?itemID=7331453669. Shop home pages are not product URLs.

“Weidian returned no product state”

Open the product URL manually to check whether it is public and still exists. If it loads only after login, it is outside this Actor's anonymous public scope. Retrying an unchanged private or deleted URL will not help.

The dataset contains fewer rows than input URLs

Duplicate item IDs are fetched once, and maxItems caps unique processed products. Review those two conditions first.

Variants are null

variants is null when includeVariants is disabled. It is an empty array when variants were enabled but the source exposed no SKU map.

FAQ

Does it search Weidian?

No. Supply known public product URLs. This keeps the Actor focused on repeatable detail and monitoring snapshots.

Does it scrape whole shops?

No. Shop information included in each product record is context for that product, not a complete shop catalog.

Can I schedule it?

Yes. Use Apify schedules and reuse the same input list. Save or export each run's dataset for historical comparison.

Are unavailable products charged?

A product is charged when a valid structured record is saved, including a valid record whose availability flags say it is unavailable. Invalid or unparsable pages are not saved or charged as products.

Can I disable variants?

Yes. Set includeVariants to false for smaller product-level records.

Are image files downloaded?

No. The output contains public image URLs. Downloading and storing image files is a separate workflow.

For sourcing work on other marketplaces, consider:

Choose this Actor when your input is a known set of public Weidian item URLs and you need compact, repeatable product snapshots.