~/ecommerce/talabat-mart-scraper
Talabat Mart 爬虫——迪拜生鲜杂货价格与 SKU
从迪拜各 Talabat Mart 前置仓(dark store)提取即时零售杂货 SKU、价格、条码与实时库存——覆盖 153 个配送区域,每件商品均带 EAN/UPC,输出统一的商品 schema。
生鲜杂货
TypeScript
阿联酋
分类ecommerce / 生鲜杂货
语言TypeScript
技术栈TypeScript
市场阿联酋
输出干净、RAG 就绪的 JSON
核心特性
前置仓级定价——每件商品在每个履约仓各出一条记录
每件商品都带 EAN/UPC 条码,可作跨零售商匹配键
实时库存数量,而不只是有货/缺货
153 个迪拜配送区域,可按次运行选择
纯 HTTP——无需无头浏览器,无需 JavaScript 渲染
价格以最小货币单位(fils)表示,便于精确计算
应用场景
- 迪拜各前置仓的即时零售价格监控
- 按条码进行跨零售商商品匹配
- 快消品牌的品类与铺货可得性追踪
- 海湾地区杂货的购物篮级比价
- 阿联酋杂货市场的进入调研
- 为零售 AI Agent 构建有据可依的商品数据集
输入参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
retailer | string | 必填 | 要抓取的零售商——Talabat Mart |
city | string | 必填 | 要抓取的城市——迪拜 |
areaIds | array | 可选 | 需覆盖的配送区域(默认:全部 153 个迪拜区域) |
categories | array | 可选 | 限定抓取的类目 slug |
maxProductsPerStore | number | 可选 | 每个前置仓采集商品数上限 |
proxy | object | 可选 | 住宅代理(阿联酋)——获取准确库存所必需 |
输出示例
1{
2 "source": {
3 "id": "2fc42edf-ac24-4e91-b871-1e7ee2117284",
4 "canonicalUrl": "https://www.talabat.com/uae/grocery/600398/al-badaa/product/modern-bakery-plain-roll-sandwich-bread-4-pieces/s/901515?aid=1172",
5 "retailer": "talabat_mart",
6 "currency": "AED"
7 },
8 "title": "Modern Bakery Plain Roll Sandwich Bread, 4 Pieces",
9 "brand": "",
10 "categories": ["bakery", "buns-rolls"],
11 "details": {},
12 "price": {
13 "current": 345,
14 "currentFormatted": "AED 3.45",
15 "previous": 345,
16 "stockStatus": "InStock",
17 "stockCount": 2
18 },
19 "variants": [
20 {
21 "id": "901515",
22 "sku": "901515",
23 "title": "Modern Bakery Plain Roll Sandwich Bread, 4 Pieces",
24 "options": [],
25 "price": { "current": 345, "currentFormatted": "AED 3.45", "previous": 345, "stockStatus": "InStock", "stockCount": 2 }
26 }
27 ],
28 "medias": [
29 { "type": "Image", "url": "https://talabat.dhmedia.io/image/product-information-management/KWV42456.png", "alt": "Modern Bakery Plain Roll Sandwich Bread, 4 Pieces", "index": 0 }
30 ],
31 "extraInfo": {
32 "scrapedAt": "2026-07-30T14:49:33.077Z",
33 "city": "dubai",
34 "darkStore": { "id": 600398, "name": "talabat mart", "zone": "al-badaa", "areaId": "1172" },
35 "barcode": "01110000140435",
36 "size": "4 Pieces",
37 "superSaver": false
38 }
39}
使用建议
- 先从单个区域开始。 只填一个 areaIds 并设置适中的 maxProductsPerStore,一分钟内即可拿到有代表性的样本——适合在全城抓取前先核对 schema。
- 按在售组合去重。 前置仓会跨区域重叠,请按 (source.id, extraInfo.darkStore.id) 关联,而不要只用 source.id。
- 用条码,别用标题。 商品标题会因零售商和语言而异;extraInfo.barcode 才是唯一可靠的跨零售商匹配键。
- 库存需要 AE 住宅代理。 任何 IP 都能取到价格与目录,但只有在阿联酋境内取到的 stockAmount 才可信。
常见问题
为什么需要阿联酋代理?
商品目录与价格从任何国家都能取到,但逐件商品的准确库存数受阿联酋地域限制。若你依赖库存数据,住宅 AE 代理是必需项而非可选项。
如何跨零售商匹配商品?
每件商品都在 extraInfo.barcode 中带有 EAN/UPC 条码。这是把同一 SKU 在 Talabat Mart 与其他杂货数据源之间关联起来的稳定键。
一条记录代表什么?
一个商品在一个前置仓的在售信息。同一商品在两个前置仓销售会返回两条记录;唯一性由 (source.id, extraInfo.darkStore.id) 这一组合决定。