Product Hunt Leaderboard
将 Product Hunt 排行榜页面解析为结构化 JSON,包含排名后的产品、每个产品的名称、tagline、upvotes、评论数、topics、缩略图、maker 数量以及推广标记。
API 用法
在 Crawling API 请求中添加 &scraper=producthunt-leaderboard。在 url 参数中对目标 URL 进行 URL 编码。
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://www.producthunt.com/leaderboard/daily/2026/7/14/' \
--data-urlencode 'scraper=producthunt-leaderboard' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://www.producthunt.com/leaderboard/daily/2026/7/14/',
{'scraper': 'producthunt-leaderboard'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://www.producthunt.com/leaderboard/daily/2026/7/14/',
{ scraper: 'producthunt-leaderboard' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://www.producthunt.com/leaderboard/daily/2026/7/14/', scraper: 'producthunt-leaderboard')
data = JSON.parse(res.body)示例输入 URL
传入 url 参数的 URL(为便于阅读已 URL 解码):
https://www.producthunt.com/leaderboard/daily/2026/7/14/响应结构
JSON 响应体。当源页面省略对应值时,字段类型可能为 null。
排行榜周期(例如
daily、weekly)。排行榜的日期。
规范的排行榜 URL。
products 中返回的产品数量。排行榜中的产品,按排名顺序排列。
产品在返回列表中的位置(从 1 开始)。
产品在排行榜中的排名。
产品的 Product Hunt 标识符。
产品名称。
产品 tagline。
产品的 URL slug。
产品的规范 Product Hunt URL。
产品的 upvotes 数量。
产品的评论数量。
产品被标记的 topics。
缩略图图片 URL(如存在)。
产品所记入的 maker 数量。
当产品为推广(赞助)列表项时为 true。
示例响应
{
"period": "daily",
"date": "2026-7-14",
"url": "https://www.producthunt.com/leaderboard/daily/2026/7/14/",
"productCount": 2,
"products": [
{
"position": 1,
"rank": 1,
"id": "612345",
"name": "Acme Analytics",
"tagline": "Product analytics that ships itself",
"slug": "acme-analytics",
"url": "https://www.producthunt.com/products/acme-analytics",
"upvotes": 842,
"commentsCount": 74,
"topics": ["Analytics", "SaaS", "Developer Tools"],
"thumbnail": "https://ph-files.imgix.net/acme-thumb.png",
"makerCount": 3,
"isPromoted": false
}
]
}