Alibaba.com Rental Scraper avatar

Alibaba.com Rental Scraper

Pricing

from $2.99 / 1,000 rental listings

Go to Apify Store
Alibaba.com Rental Scraper

Alibaba.com Rental Scraper

Bounded public Alibaba.com rental-search and product-detail extraction with price, supplier, and product metadata. Search pages are subject to Alibaba robots/access policy and are never bypassed.

Pricing

from $2.99 / 1,000 rental listings

Rating

0.0

(0)

Developer

w3crawler

w3crawler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Alibaba.com Rental Scraper

This Apify Actor extracts rich, source-backed rental listing data from public Alibaba.com search, category, country-search, wholesale, showroom, and product-detail pages.

Actor page: parseforge/alibaba-com-rental-scraper

The Actor reads public HTML, visible product cards, and published Schema.org Product JSON-LD. It supports multiple start URLs, per-source pagination, global deduplication, filters, sorting, optional product-detail enrichment, standard Apify Proxy routing, and deterministic local fixtures.

What the Actor returns

Product rows are marketplace-focused and contain observed fields only. Actor debugging wrappers such as recordId, recordType, status, success, fieldCoverage, dataQuality, extractionMethod, httpStatus, accessStatus, usedProxy, and observedAt are not written to the dataset. Request counts, retries, blocked-source evidence, and enrichment counts are stored in the OUTPUT_SUMMARY and DIAGNOSTICS key-value records.

When available, product rows include:

  • identity: url, listingUrl, productId, title, description, category, brand, sku, mpn
  • source context: source, sourceDomain, sourceUrl, pageNum, position, keyword, scrapedAt
  • pricing: price, priceMin, priceMax, currency, priceText, priceFormatted, availability
  • supplier and engagement: supplierName, supplierUrl, supplierProfileUrl, supplierCountry, supplierYears, rating, reviewCount, soldCount, transactionCount
  • order and merchandising: minimumOrderQuantity, minimumOrderUnit, minimumOrderText, badges, isSponsored, hasTradeAssurance, leadTime, shipping
  • rental and product facts: rentalMatch, rentalSignals, rentalEvidence, rentalPeriod, rentalPrice, rentalPriceMin, rentalPriceMax, rentalPriceCurrency, rentalPriceText, rentalAvailability, attributes
  • media: images, imageUrls, thumbnail, imageCount, and optional detailUrl/detailEnriched

Missing values are omitted instead of fabricated. When images are enabled, images and imageUrls are aligned, thumbnail is their first entry, and imageCount is their length. Image URLs are restricted to product-scoped Alibaba CDN assets; known logos, icons, avatars, placeholders, and “find similar” assets are discarded.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Source and access policy

Supported public paths are /trade/search, /catalog/, /category/, /countrysearch/, /wholesale/, /showroom/, and /product-detail/ on HTTPS Alibaba hosts. The Actor fetches https://www.alibaba.com/robots.txt before source requests and skips URLs disallowed by the published policy. It never logs in, calls private APIs, accesses seller contact endpoints, solves CAPTCHAs, or bypasses WAF/access controls.

rentalOnly: true is deliberately stricter than a keyword search. A product must contain a configured rental keyword and an independent published rental-service cue, such as available for rent, rental service, short-term lease, a rental period (per day, hourly, or similar), a rental rate/price, or a booking/availability statement. Generic sales language such as rental equipment, for rental business, an MOQ, or a product title containing rental alone is rejected. When accepted, rentalEvidence and the available period, rental price, and availability fields show which source-backed cues were observed.

The legacy default trade-search URL remains available for compatibility, but Alibaba may disallow /trade/ in robots.txt. For live category extraction, provide a currently permitted public category URL such as https://www.alibaba.com/countrysearch/CN/equipment-rental.html. A blocked, unavailable, challenged, or empty source produces a minimal diagnostic only when includeDiagnostics is enabled:

{
"url": "https://www.alibaba.com/countrysearch/CN/equipment-rental.html",
"error": "Alibaba returned a public anti-automation challenge page.",
"errorCode": "ACCESS_BOUNDARY"
}

Input

All examples below are valid JSON. startUrls and productUrls may also contain Apify-style objects with a url property; invalid or unsupported URLs are ignored and counted as rejectedInputCount in OUTPUT_SUMMARY.

Basic extraction

If startUrls is empty or omitted, keyword builds the default public Alibaba search URL.

{
"keyword": "equipment rental",
"maxItems": 25,
"maxPages": 3,
"rentalOnly": true,
"includeImages": true
}

Multiple sources and pagination

Every start URL is processed independently. Pages within one source are followed sequentially through observed numbered or “next” links. maxItems is global across all sources and pages. maxPages is per source; 0 means automatic pagination with a hard 100-page safety cap.

{
"startUrls": [
"https://www.alibaba.com/countrysearch/CN/equipment-rental.html",
"https://www.alibaba.com/showroom/party-rental-equipment.html"
],
"maxItems": 100,
"maxPages": 5,
"deduplicate": true,
"sortBy": "relevance",
"includeDiagnostics": true
}

Filters and sorting

Filters use observed values. If a numeric filter is active and the page does not expose that value, the record does not pass the filter. requiredBadges requires every requested badge, case-insensitively. Sorting happens after filtering across all sources; relevance preserves source/page/card order, and missing numeric values sort after observed values.

{
"keyword": "generator rental",
"maxItems": 50,
"sortBy": "rating_desc",
"textQuery": "portable",
"category": "equipment",
"minPrice": 50,
"maxPrice": 5000,
"minRating": 4.5,
"minReviewCount": 20,
"minSoldCount": 10,
"minSupplierYears": 3,
"minOrderQuantity": 1,
"maxOrderQuantity": 100,
"supplierCountry": "CN",
"requiredBadges": ["CE"]
}

Supported sortBy values are relevance, price_asc, price_desc, rating_desc, reviews_desc, sold_desc, supplier_years_desc, moq_asc, and title_asc.

Direct products and optional detail enrichment

productUrls accepts public product-detail URLs. enrichDetails additionally follows product links discovered on permitted source pages. Detail requests are bounded by maxDetailPages, share the same request pacing/retry policy, and do not bypass robots or access boundaries.

{
"productUrls": [
"https://www.alibaba.com/product-detail/Portable-Generator-Rental_1600123456789.html"
],
"rentalOnly": false,
"enrichDetails": false,
"maxDetailPages": 0,
"includeImages": false,
"includeAttributes": false
}

Developer options and proxy

These controls are grouped as Developer options in the Apify input UI. requestDelayMs paces request starts, maxConcurrency bounds concurrent source/detail operations, maxRequestRetries retries transient failures with backoff, and requestTimeoutSecs sets the per-response limit. The legacy timeoutMs field is accepted for older saved inputs but new inputs should use requestTimeoutSecs.

{
"requestDelayMs": 1200,
"maxConcurrency": 2,
"maxRequestRetries": 3,
"requestTimeoutSecs": 60,
"maxResponseBytes": 20000000,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Apify Proxy changes only the network route. It is optional, is not used in fixture mode, and does not authorize bypassing Alibaba's robots policy or access controls.

Deterministic fixture examples

Use one fixture for parser QA:

{
"startUrls": ["https://www.alibaba.com/countrysearch/CN/equipment-rental.html"],
"maxItems": 1,
"maxPages": 1,
"requestDelayMs": 0,
"maxConcurrency": 1,
"maxRequestRetries": 0,
"requestTimeoutSecs": 15,
"fixtureFile": "fixtures/sample.html"
}

Use ordered fixtures to test pagination and multiple records. The first file is page 1, the second is page 2, and so on:

{
"startUrls": ["https://www.alibaba.com/countrysearch/CN/equipment-rental.html"],
"maxItems": 10,
"maxPages": 2,
"sortBy": "price_asc",
"fixtureFiles": [
"fixtures/sample.html",
"fixtures/sample-page-2.html"
]
}

fixtureFile and fixtureFiles are mutually exclusive and must be Actor-relative HTML paths.

Output example

Example product row:

{
"url": "https://www.alibaba.com/product-detail/Portable-Generator-Rental_1600123456789.html",
"listingUrl": "https://www.alibaba.com/product-detail/Portable-Generator-Rental_1600123456789.html",
"productId": "1600123456789",
"title": "Portable Generator Rental",
"description": "Portable generator rental for events and construction.",
"category": "Equipment Rental",
"brand": "PowerHarbor",
"sku": "1600123456789",
"source": "Alibaba.com public rental listings",
"sourceDomain": "www.alibaba.com",
"sourceUrl": "https://www.alibaba.com/countrysearch/CN/equipment-rental.html",
"pageNum": 1,
"position": 1,
"keyword": "rental",
"price": 120,
"priceMin": 120,
"priceMax": 120,
"currency": "USD",
"priceText": "120.00",
"priceFormatted": "120.00",
"availability": "https://schema.org/InStock",
"rentalEvidence": ["rental_service", "rental_period", "rental_price", "rental_availability"],
"rentalPeriod": "day",
"rentalPrice": 120,
"rentalPriceMin": 120,
"rentalPriceMax": 120,
"rentalPriceCurrency": "USD",
"rentalPriceText": "$120 per day",
"rentalAvailability": "Available for rent by day",
"supplierName": "PowerHarbor Equipment Co.",
"rating": 4.8,
"reviewCount": 12,
"rentalMatch": true,
"rentalSignals": ["rental"],
"images": ["https://sc04.alicdn.com/kf/portable-generator.jpg"],
"imageUrls": ["https://sc04.alicdn.com/kf/portable-generator.jpg"],
"thumbnail": "https://sc04.alicdn.com/kf/portable-generator.jpg",
"imageCount": 1,
"scrapedAt": "2026-09-06T00:00:00.000Z"
}

Operational information is kept outside product rows:

{
"status": "SUCCEEDED",
"requests": 2,
"retries": 0,
"successfulRequests": 2,
"failedRequests": 0,
"sourcesProcessed": 1,
"pagesProcessed": 2,
"recordsEmitted": 2,
"diagnostics": 0,
"completedAt": "2026-09-06T00:00:00.000Z"
}

Dataset and key-value outputs

The default dataset contains product rows and, when enabled, minimal diagnostic rows. The default key-value store contains:

  • OUTPUT_SUMMARY: counts, status, input limits, pagination totals, retry totals, and completion time
  • SOURCE_METADATA: source URL, supported paths, robots URL, and public-source policy
  • DIAGNOSTICS: { "count": number, "items": [{ "url": string, "error": string, "errorCode": string }] }
  • OUTPUT: the same run summary for compatibility with existing integrations

Run and validate locally

From this Actor directory:

npm ci
npm test
apify validate-schema
apify run --purge --input-file .actor/input.json
npm run validate

The fixture inputs under test/inputs/ exercise filters, sorting, multiple sources, pagination, image/detail options, developer settings, and rental-semantic false-positive rejection without making network requests. The live category URL may be blocked or robots-disallowed; in that case the Actor records the source diagnostic and does not fabricate rows.

Cost and limits

Actor cost is driven primarily by request count, response size, and Apify platform compute/network usage. Use maxItems, maxPages, maxDetailPages, maxConcurrency, requestDelayMs, and maxResponseBytes to keep runs bounded. No supplier contact, checkout, account login, or paid Alibaba action is performed.

Use this Actor only with public pages and in accordance with Alibaba's terms, robots policy, applicable law, and your data-protection obligations. It is not affiliated with Alibaba.com. For support, include the Actor run ID, sanitized input, source URL, and the relevant errorCode; never include credentials or private tokens.