How to Scrape Marketplace Bestseller Lists and Trending Products
Bestseller lists are one of the most valuable sources of competitive intelligence on e-commerce marketplaces. These lists reveal which products are selling the most, which categories are growing, and which brands are winning in the market. When tracked over time, bestseller data creates a rich dataset for understanding market dynamics, identifying trends, and making strategic decisions.
This article covers how to collect bestseller and trending product data from major marketplaces, how to analyze it for actionable insights, and why proxy infrastructure is essential for reliable data collection.
Why Bestseller Tracking Matters
Market Share Estimation
In the absence of actual sales data, bestseller rankings serve as a proxy for relative sales volume. Products that consistently rank at the top of bestseller lists are outselling their competitors. Tracking these rankings over time gives you a directional view of market share shifts.
Trend Identification
Trending product lists and rising bestsellers reveal emerging market trends. Identifying these trends early allows you to:
- Adjust your product development pipeline
- Position existing products to capitalize on trends
- Modify your marketing messaging to align with consumer interests
Competitive Intelligence
Bestseller tracking answers critical competitive questions:
- Which competitor products are performing best?
- Are new entrants gaining traction?
- How do competitor bestsellers change during promotional periods?
- Which price points dominate the bestseller rankings?
Category Opportunity Assessment
Analyzing bestseller lists across categories reveals where demand is strong, where competition is concentrated, and where opportunities may exist for new products.
What Data to Collect
Bestseller List Data
From each marketplace’s bestseller or top-selling lists:
- Product rank: Position on the bestseller list
- Product details: Title, brand, price, rating, review count
- Category: Which category or subcategory the product appears in
- Sales indicators: Sold count (if visible), “hot” badges, or other popularity signals
- Timestamp: When the data was collected (rankings change frequently)
Trending/Rising Products
Many platforms highlight products that are gaining momentum:
- Most wished for: Products on the most wish lists
- Hot deals: Products with high deal engagement
- New releases: Recently launched products gaining traction
- Rising searches: Keywords with increasing search volume
Category-Specific Rankings
Beyond the overall bestseller list, collect category and subcategory rankings:
- Top 100 in each relevant subcategory
- Category-specific new releases
- Category movers and shakers (biggest ranking changes)
Collecting Bestseller Data
Platform-Specific Sources
Amazon: Amazon provides detailed bestseller lists updated hourly, organized by category hierarchy. Also available: Movers & Shakers, Most Wished For, and New Releases lists.
Shopee: Shopee’s “Top Products” and category sorting by “Top Sales” provide bestseller data. Flash sale bestsellers are also available during promotional events.
Lazada: Lazada offers “Top Selling” product lists by category and highlights trending products on its homepage.
Tokopedia: Tokopedia provides “Produk Terlaris” (bestselling products) by category.
Collection Implementation
class BestsellerCollector:
def __init__(self, proxy_manager):
self.proxy_manager = proxy_manager
async def collect_bestsellers(self, platform, country, category):
"""Collect bestseller list for a category on a marketplace."""
proxy = self.proxy_manager.get_proxy(country)
parser = self.get_parser(platform)
url = parser.build_bestseller_url(category['id'])
all_products = []
page = 1
while page <= category.get('max_pages', 5):
page_url = parser.add_pagination(url, page)
page_data = await self.fetch_page(page_url, proxy)
if not page_data:
break
products = parser.parse_bestseller_list(page_data)
if not products:
break
for rank, product in enumerate(products, start=(page - 1) * parser.items_per_page + 1):
all_products.append({
'rank': rank,
'product_id': product['id'],
'title': product['title'],
'brand': product.get('brand', 'Unknown'),
'price': product['price'],
'original_price': product.get('original_price'),
'rating': product.get('rating'),
'review_count': product.get('review_count'),
'sold_count': product.get('sold_count'),
'seller': product.get('seller_name'),
'is_mall': product.get('is_mall', False),
'platform': platform,
'country': country,
'category': category['name'],
'category_id': category['id'],
'collected_at': datetime.utcnow(),
})
page += 1
return all_productsProxy Requirements
Bestseller data collection requires proxies for several reasons:
Frequency: To track ranking changes, collect bestseller data at least daily, and hourly during promotional events. This means a sustained volume of requests.
Geographic targeting: Bestseller lists differ by country. The top-selling products on Shopee Singapore are different from Shopee Indonesia. Use country-specific mobile proxies from DataResearchTools to collect geo-accurate bestseller data.
Consistency: Ranking data is only meaningful if collected consistently over time. Reliable proxy infrastructure ensures you do not miss collection cycles due to blocking or connection failures.
Mobile perspective: Bestseller lists displayed on mobile apps may differ from web versions. DataResearchTools mobile proxies access marketplace content through genuine carrier IPs, capturing the mobile shopping experience.
Collection Schedule
| List Type | Frequency | Rationale |
|---|---|---|
| Overall bestsellers | Daily | Rankings shift daily |
| Category bestsellers | Daily | Same as above |
| Trending/rising | Daily | By definition, trends need daily tracking |
| During mega sales | Hourly | Rankings change rapidly during events |
| New releases | Weekly | New products launch weekly |
Analyzing Bestseller Data
Ranking Trend Analysis
Track how specific products and brands move through bestseller rankings over time:
class BestsellerAnalyzer:
def __init__(self, db):
self.db = db
def get_ranking_trend(self, product_id, platform, country, category, days=30):
"""Get ranking history for a specific product."""
history = self.db.get_ranking_history(
product_id, platform, country, category, days
)
return {
'product_id': product_id,
'rankings': [
{'date': h['collected_at'].date(), 'rank': h['rank']}
for h in history
],
'best_rank': min(h['rank'] for h in history) if history else None,
'worst_rank': max(h['rank'] for h in history) if history else None,
'avg_rank': sum(h['rank'] for h in history) / len(history) if history else None,
'trend': self.calculate_trend([h['rank'] for h in history]),
}
def calculate_trend(self, ranks):
"""Calculate if ranking is improving, declining, or stable."""
if len(ranks) < 7:
return 'insufficient_data'
recent_avg = sum(ranks[-7:]) / 7
earlier_avg = sum(ranks[:7]) / 7
if recent_avg < earlier_avg * 0.85: # Lower rank number = better
return 'improving'
elif recent_avg > earlier_avg * 1.15:
return 'declining'
else:
return 'stable'Brand Share of Bestseller Rankings
Calculate what share of the top positions each brand holds:
def brand_share_of_bestsellers(bestseller_data, top_n=100):
"""Calculate each brand's share of the top N bestseller positions."""
top_products = [p for p in bestseller_data if p['rank'] <= top_n]
brand_counts = {}
for product in top_products:
brand = product.get('brand', 'Unknown')
brand_counts[brand] = brand_counts.get(brand, 0) + 1
total = len(top_products)
return {
brand: {
'count': count,
'share_percentage': count / total * 100,
'avg_rank': sum(
p['rank'] for p in top_products
if p.get('brand') == brand
) / count,
}
for brand, count in sorted(
brand_counts.items(), key=lambda x: x[1], reverse=True
)
}New Entrant Detection
Identify products that newly appear on bestseller lists:
def detect_new_entrants(current_bestsellers, previous_bestsellers, top_n=50):
"""Find products that are new to the top N bestseller rankings."""
current_top = {p['product_id'] for p in current_bestsellers if p['rank'] <= top_n}
previous_top = {p['product_id'] for p in previous_bestsellers if p['rank'] <= top_n}
new_entrants = current_top - previous_top
exits = previous_top - current_top
return {
'new_entrants': [
p for p in current_bestsellers
if p['product_id'] in new_entrants
],
'exits': [
p for p in previous_bestsellers
if p['product_id'] in exits
],
}Price Distribution Analysis
Analyze the price distribution of bestselling products:
- What is the average price of top-10 products versus top-50?
- Are bestsellers concentrated in a specific price range?
- Is the bestseller price range shifting over time?
This analysis reveals what consumers are willing to pay for the most popular products in your category.
Promotional Impact on Rankings
Compare bestseller rankings during normal periods versus promotional events:
- Which products climb most during sales events?
- Do promotional rankings persist after the event ends?
- Which brands benefit most from promotional events?
Identifying Trends
Rising Categories
Track categories where the number of bestselling products is growing. If a subcategory is expanding its presence on the overall bestseller list, it indicates growing consumer demand.
Feature Trends
Analyze the attributes of bestselling products to identify feature trends:
- Are products with specific features (e.g., wireless, USB-C, waterproof) increasingly dominating bestseller lists?
- What specifications separate the top-ranked bestsellers from the rest?
Seasonal Patterns
Build a seasonal model by analyzing bestseller data across multiple years:
- Which product types peak during specific seasons?
- How far in advance do seasonal bestsellers begin climbing?
- Which categories are most sensitive to seasonal effects?
Dashboard Design
Bestseller Leaderboard
Real-time view of current bestseller rankings with your products highlighted and competitive positioning visible.
Brand Share Trend
Line chart showing each brand’s share of the top 50 or top 100 over time. This is one of the best proxy metrics for market share trends.
New Product Alerts
Feed showing newly detected products entering the bestseller rankings, with product details and estimated sales velocity.
Category Trend Map
Heatmap showing category growth and decline patterns across platforms and countries.
DataResearchTools for Bestseller Tracking
Reliable bestseller tracking across SEA marketplaces requires:
- Daily collection capability: High-volume proxy infrastructure for consistent daily scraping
- Geographic coverage: Country-specific mobile IPs to access geo-specific bestseller lists
- Platform access: Reliable access to bestseller pages across Shopee, Lazada, Amazon, and Tokopedia
- Event-ready scaling: Ability to increase collection frequency during mega sales
DataResearchTools provides carrier-level mobile proxy infrastructure across all major SEA markets, delivering the reliability and geographic coverage needed for comprehensive bestseller tracking.
Conclusion
Bestseller tracking is one of the most efficient forms of competitive intelligence. The data is publicly available on marketplace bestseller lists, and with systematic collection through reliable proxy infrastructure, it provides continuous visibility into market dynamics, competitive positioning, and emerging trends. Brands that track bestseller data consistently gain early insight into shifts in consumer demand and competitive moves, enabling more informed strategic decisions in fast-moving SEA e-commerce markets.
- Building an Automated Price Parity Monitor with Proxies
- How to Build a Digital Shelf Monitoring System with Proxies
- How to Scrape AliExpress Product Data Without Getting Blocked
- Amazon Buy Box Monitoring: Proxy Setup for Continuous Tracking
- AdsPower Proxy Setup: Multi-Account Browser Configuration
- AdsPower vs GoLogin: Features, Pricing, and Proxy Support Compared
- Building an Automated Price Parity Monitor with Proxies
- How to Build a Digital Shelf Monitoring System with Proxies
- How to Scrape AliExpress Product Data Without Getting Blocked
- Amazon Buy Box Monitoring: Proxy Setup for Continuous Tracking
- AdsPower Proxy Setup: Multi-Account Browser Configuration
- AdsPower Tutorial: Team Browser Management Guide 2026
- Building an Automated Price Parity Monitor with Proxies
- How to Build a Digital Shelf Monitoring System with Proxies
- How to Scrape AliExpress Product Data Without Getting Blocked
- Amazon Buy Box Monitoring: Proxy Setup for Continuous Tracking
- AdsPower Proxy Setup: Multi-Account Browser Configuration
- AdsPower Tutorial: Team Browser Management Guide 2026
- Building an Automated Price Parity Monitor with Proxies
- How to Build a Digital Shelf Monitoring System with Proxies
- How to Scrape AliExpress Product Data Without Getting Blocked
- Amazon Buy Box Monitoring: Proxy Setup for Continuous Tracking
- AdsPower Proxy Setup: Multi-Account Browser Configuration
- AdsPower Tutorial: Team Browser Management Guide 2026
Related Reading
- Building an Automated Price Parity Monitor with Proxies
- How to Build a Digital Shelf Monitoring System with Proxies
- How to Scrape AliExpress Product Data Without Getting Blocked
- Amazon Buy Box Monitoring: Proxy Setup for Continuous Tracking
- AdsPower Proxy Setup: Multi-Account Browser Configuration
- AdsPower Tutorial: Team Browser Management Guide 2026