Tesco 没有公开的产品 API。这也是为什么大多数想抓取 Tesco 商品数据的团队,不是花 £2000+ 找自由开发者定制,就是接一个 Apify scraper,结果几天后就失效。

但很多人不知道,其实还有第三条路:AI scraping。它像人一样“读懂”页面内容,因此同一套配置既能抓 Tesco 的分类页、品牌列表页,也能抓促销页,而且还能扛住那些一改版就让传统 scraper 直接报废的页面布局更新。

这篇指南会带你完整走一遍:为什么自己做 Tesco 商品 scraper 不划算、哪些 Tesco 页面最适合拿到干净数据,以及如何用 Datablist's AI Scraping Agent 一步步完成抓取。

📌 赶时间先看这里

本文会演示如何使用 Datablist's AI Scraping Agent 抓取 Tesco 的商品数据。

问题: Tesco 没有公开的产品 API,现成 scraper 往往在网站每次改版后的几周内失效,而定制开发通常要 £2000+,后续还要持续维护。

解决方案: 使用 Datablist's AI Scraping Agent,只需自然语言 prompt 和一个 URL,就能抓取 Tesco 商品数据。

你将学到:

  1. 为什么定制 Tesco scraper 是个无底洞
  2. 哪些 Tesco 页面能返回最干净的数据
  3. 如何通过 5 个步骤,在 10 分钟内抓取任意 Tesco 分类页

为什么选 Datablist:

  1. AI scraping 读取的是语义,不是 HTML,所以 Tesco 改版后也不容易跑挂
  2. 分页可自动处理(单次 run 最多支持 5,000 页)
  3. 无需代码、无需 API key,只要 Tesco URL 和 prompt 即可

本文包含哪些内容

为什么自建 Tesco Scraper 不划算

如果你曾考虑过自己做一个 Tesco scraper,那在花钱之前,至少先看看这三个理由。

成本高

一个稳定可用的 Tesco scraper,绝不是周末两天就能搞定的小项目。Tesco.com 的商品列表通过 JavaScript 动态加载,分类页通常有大量分页,而且网站布局更新也很频繁,这意味着任何基于规则的 scraper 都需要不断修修补补。

大多数团队会尝试下面几条路,而问题也都出在这里:

  • 找自由开发者定制:首次开发 £2000+,之后 Tesco 只要更新商品网格,还得继续付维护费
  • 从 Apify 或 GitHub 买现成 Tesco 商品 scraper:第一天能用,但下一次布局改动后,通常几周内就失效
  • 自己用 Puppeteer 或 Playwright 写脚本:Tesco 的分页、JavaScript 渲染,以及不够统一的商品卡片结构,很快就会把脚本搞崩

如果你只需要一次性抓一个快照,请自由开发者也许还说得过去。但如果你需要持续获取最新的 Tesco 数据(比如价格监控、FMCG 分析、retail arbitrage),维护成本会一月接一月地累积。

How To Scrape Tesco Products - Cost of Custom Scrapers
How To Scrape Tesco Products - Cost of Custom Scrapers

开发周期长

即便是能力很强的开发者,要做一个稳定的 Tesco scraper 也往往需要几周时间。他们需要梳理每一种分类页、处理渲染后的 HTML、编写分页网格逻辑,还要覆盖 Tesco 返回促销价为 “N/A” 或某些商品被年龄限制页拦住的情况。

Datablist's AI Scraping Agent 直接跳过了这一整段开发流程。你只需要粘贴一个 Tesco URL,就能在 10 分钟内拿到结构化商品数据。 不用写需求文档,不用来回确认边界情况,也不用等 v2。

How To Scrape Tesco Products - Time to Build a Scraper
How To Scrape Tesco Products - Time to Build a Scraper

非常容易失效

这才是真正的大头成本:Tesco 经常调整商品列表布局。每次分类页模板变化,或者价格元素的位置一改,你自建的 Tesco scraper 就可能直接失灵。

到最后通常只剩两个选择:要么再付钱让开发者修,要么你自己花一下午排查。

而 AI scraping 则绕开了这个问题。因为 AI Agent 读的是页面语义,而不是 HTML 结构,所以哪怕 Tesco 改了价格区域的 CSS class,价格依然还是“价格”。

💡 核心区别

传统 scraper 按规则工作:“找到 class 为 .product-price 的元素并提取文本。”AI scraper 按语义工作:“找出这个 Tesco 页面上的商品价格。”

这就是为什么今天对 Tesco 生效的同一套配置,下个月 Tesco 重新组织商品网格后通常仍然能用;也是为什么它可以平滑迁移到 Morrisons、Sainsbury's 和 Asda,而不需要针对每个网站单独写代码。

如何用 Datablist 的 AI Agent 抓取 Tesco 商品

在进入具体步骤之前,先快速说明一下 AI Scraping Agent 到底是什么、哪些 Tesco 页面更适合抓、能提取哪些数据,以及它的边界在哪里。

什么是 Datablist 的 AI Scraping Agent?

Datablist 是一个 workflow automation platform,可用于构建 lead list、做 data enrichment,以及运行各类 scraping workflow。在 Datablist 内部,有 60 多种不同的数据源和 enrichments,而 AI Scraping Agent 就是专门用来从零售网站提取商品数据的那一个。

**这个 agent 的工作方式由三部分组成:**目标 URL、描述提取需求的 prompt,以及像人一样理解页面内容的大语言模型。

抓 Tesco 时,你甚至不需要自己写 prompt。Datablist 已经提供了一个 Retail Product Scraper template,会预先加载 prompt 和输出字段。你只要粘贴 Tesco URL,剩下的交给模板处理。

关于这个 agent 如何处理 Tesco,有三个点尤其重要:

  • 默认使用 OpenAI GPT 4.1 mini,是目前 AI scraping 场景里性价比很高的 LLM
  • 支持 Render HTML,对 Tesco 这种通过 JavaScript 加载商品列表的网站来说是必需项
  • 支持自动分页,单次 run 最多可覆盖 5,000 页

这也是为什么同一套配置几乎可以无改动迁移到其他英国超市网站。同一个 agent、同一个 template、同一套设置,也适用于 Morrisons、Sainsbury's 和 Asda。变的只有 URL。

最重要的一条规则:只抓品牌页和分类页

一定要抓 Tesco 的分类页或品牌页,不要抓首页,也不要抓 “all products” 这类全量页面。超大列表很容易超出 AI Agent 的 context window,run 会中途停止,而且无法续跑,credits 也就白白消耗了。

AI Agent 在 Tesco 上比较适合处理的页面:

  • ✅ tesco.com//... 下的分类页
  • ✅ 品牌页(特定厂商商品列表)
  • ✅ deals / offers 页

建议避开的页面:

  • ❌ Tesco 首页
  • ❌ “All products” 或全站搜索结果页
  • ❌ 一次性无限滚动加载上千个商品的页面

你可以从 Tesco 抓取哪些数据

一次 Tesco 抓取,基本可以提取出你做价格监控、竞品研究,或给现有商品目录做 data enrichment 所需的大部分字段:

  • Product Name:Tesco 网站展示的完整商品名称
  • Product URL:指向 tesco.com 商品详情页的直达链接
  • Brand Name:商品所属品牌 / 厂商
  • Price:当前 GBP 价格,包含 £ 符号
  • Sale Price:如果 Tesco 当前有促销,返回折后价;没有活动则返回 “N/A”
  • Product Category:商品所在的分类或货架部门
  • Availability:有货、缺货或库存有限
  • Rating:Tesco 页面展示时可提取用户评分
  • Image URL:主图的直链
  • SKU:Tesco 内部商品 ID

建议在 run 之前先想清楚自己真正需要哪些输出字段,这样导出的结果只会保留你要用到的列。

抓取 Tesco 的完整实操步骤

完整的 Tesco 抓取流程一共 5 步。开始前,请先准备好:

  1. 一个 Tesco 分类页或品牌页 URL(不要用首页)
  2. 对自己真正需要哪些商品字段有个大致判断

第 1 步:注册并创建 Collection

首先,注册 Datablist.com

How To Scrape Tesco Products - Datablist Homepage
How To Scrape Tesco Products - Datablist Homepage

然后,新建一个 New Collection

How To Scrape Tesco Products - New Collection
How To Scrape Tesco Products - New Collection

第 2 步:进入 AI Scraping Agent

  1. 点击 See all sources
How To Scrape Tesco Products - See All Sources
How To Scrape Tesco Products - See All Sources
  1. 向下滚动,选择 AI Scraping Agent (Site Scraper)
How To Scrape Tesco Products - AI Agent Selection
How To Scrape Tesco Products - AI Agent Selection

此时你会看到 source 配置界面,大致如下:

How To Scrape Tesco Products - Source Settings
How To Scrape Tesco Products - Source Settings

第 3 步:选择 Retail Product Scraper Template,并粘贴 Tesco URL

  1. 点击 Template Drop-Down,选择 “Retail Product Scraper”
How To Scrape Tesco Products - Template Selection
How To Scrape Tesco Products - Template Selection
  1. 将 Tesco 分类页 URL 粘贴到 URL 输入框中,例如:

https://www.tesco.com/groceries/en-GB/shop/fresh-food/all

How To Scrape Tesco Products - URL Configuration
How To Scrape Tesco Products - URL Configuration

❗️ 只抓品牌页和分类页(再次提醒)

不要粘贴 Tesco 首页,也不要用 “all products” URL。超大列表会直接冲破 AI Agent 的 context window。抓 Tesco 时,建议按分类一页页来。

  1. 设置要抓取的页数(Tesco 通常每页显示约 36 个商品,因此一个约 200 个商品的分类,大概需要抓 3 到 4 页)
How To Scrape Tesco Products - Pagination Settings
How To Scrape Tesco Products - Pagination Settings
  1. 向下滚动并点击 Continue
How To Scrape Tesco Products - Advanced Settings
How To Scrape Tesco Products - Advanced Settings

💡 点击 Continue 之前,先检查 Advanced Settings

请确保以下配置已开启:

  1. LLM:OpenAI GPT 4.1 mini(性能 / 价格比最佳)
  2. Max Iterations:10
  3. Website Scraper Option: Render HTML(对 Tesco 非常关键,因为它的商品列表是通过 JavaScript 动态加载的)

第 4 步:配置输出字段

Datablist 会自动创建输出属性。

点击 X Icons 删除你不需要的输出字段(例如如果你只想抓 Tesco 价格,就可以去掉 Rating)。

How To Scrape Tesco Products - Outputs Configuration
How To Scrape Tesco Products - Outputs Configuration

第 5 步:运行抓取

输出字段设置好后,点击 Run Import Now,开始抓取 Tesco 数据。

How To Scrape Tesco Products - Run Import
How To Scrape Tesco Products - Run Import

几分钟后,你的 Tesco 抓取结果大致会是这样。接下来,你还可以继续使用 Datablist 的 workflow automation features 对数据进行清洗、去重和导出。

How To Scrape Tesco Products - Results Overview
How To Scrape Tesco Products - Results Overview

💡 重复抓取 Tesco 时,记得避免重复数据

如果你计划之后再次抓取同一个 Tesco 分类:

  1. 选择一个唯一标识列(推荐用 Product URL)
  2. 点击列标题 → Rename - Settings - Delete
  3. 勾选:Do not allow duplicate values
  4. 点击 Save Property

如果你还会把 Morrisons、Sainsbury's 和 Asda 的数据一起拉到同一个文件中,我们关于删除 CSV 文件重复项的指南也介绍了如何做跨零售商去重。

Datablist 的 AI Agent 也支持抓取其他零售网站

这套 Tesco 抓取方法并不是 Tesco 专属。我们测试过的英国超市网站,基本都可以直接用同一个 AI Scraping Agent 和同一个 Retail Product Scraper template,唯一需要改的就是 URL。

如果你也需要从其他类似零售商抓取商品数据,可以继续看下面这些分步教程:

  1. 抓取 Morrisons 商品 👈🏽
  2. 抓取 Sainsbury's 商品 👈🏽
  3. 抓取 Asda 商品 👈🏽

核心结论

  1. 定制 Tesco 商品 scraper 是个烧钱坑。 开发成本通常 £2000+ 起步,后续维护另算,而且 Tesco 一改版就很容易出问题。
  2. AI scraping 读取的是语义,不是 HTML。 所以即使商品网格结构变化,同一套配置通常仍然能继续抓 Tesco 商品;迁移到 Morrisons、Sainsbury's 和 Asda 也不需要单站点单独开发。
  3. 一定要抓品牌页或分类页,不要抓首页。 超大列表会超出 agent 的 context window,白白浪费一次 run。
  4. 整套配置不到 5 分钟。 选 template、填 URL、选输出字段、直接 run。

关于抓取 Tesco 的常见问题

抓取 Tesco 商品要多少钱?

Datablist's AI Agent 采用的是按使用量计费的 credits 系统。单次 Tesco 抓取的成本取决于 agent 实际处理了多少商品和多少页面。Datablist 套餐起价为 $25/月,包含 5,000 个免费 credits;额外加购包从 $20 / 20,000 credits 起,大批量购买最高可享 35% 折扣。

抓完整个 Tesco 商品目录要多久?

大多数包含 50 到 200 个商品的 Tesco 分类页,通常可在 5 到 10 分钟内抓完。跨多个分页分类的大型任务(500+ 商品)一般需要 10 到 20 分钟。第一次配置还要额外加 2 到 3 分钟。

为什么建议抓 Tesco 分类页,而不是 “All Products”?

Tesco 的 “all products” 视图通常会把几千个商品加载到同一个渲染页面里。这很容易超出 AI Agent 的 context window,导致 agent 中途停止,而且无法 resume,所以前面已经跑过的部分也等于浪费。分类页和品牌页则通常处于更安全的范围内,抓取更稳定,后续如果你需要全量覆盖,再把它们合并到同一个 collection 里即可。

可以抓取 Tesco 的促销价和优惠信息吗?

可以。Retail Product Scraper template 默认包含 Sale Price 输出字段。当 Tesco 有促销活动时,会返回折扣价;没有活动时,该列会显示 “N/A”。这一点其实很有用,因为你可以据此快速筛选当前哪些分类正在做促销。

在英国抓取 Tesco 合法吗?

通常来说,抓取 Tesco 公开展示的商品数据(如名称、价格、库存状态),在英国法律框架下与抓取其他公开网页数据遵循相似原则,一般是合法的。不过你仍然应该查看 Tesco 的服务条款,避免抓取个人数据,并将请求频率控制在合理范围内。如果是商业用途,建议先让法务团队确认一下。

Tesco 会封禁 scraper 吗?

对于公开零售网站来说,Tesco 的 anti-bot 保护通常不算特别激进。大多数通过 Datablist 发起的 Tesco 抓取,第一次就能成功,尤其是在开启 Render HTML 的情况下。如果某个分类页没有返回数据,可以先降低页数重试,或者把任务拆成更细的子分类分别抓取。

可以定时重复抓取 Tesco 做价格监控吗?

可以。Datablist 的 workflow automation features 支持你设置定期运行。建议再搭配一个唯一标识列(最好用 Product URL)和防重复设置,这样每次重复抓取 Tesco 时,只会新增新商品,而不会把已有商品重复导入。

不会写代码,也能抓 Tesco 吗?

完全可以。整个流程都是 no-code:选择 Retail Product Scraper template、粘贴 Tesco URL、选择输出字段,然后点击运行。只要你会写一句话,就能用 Datablist 抓 Tesco。

哪些 Tesco 分类最适合抓取?

Tesco.com 上的标准杂货分类通常返回的数据最干净,比如 fresh、frozen、bakery、drinks、household。品牌页也通常表现不错。促销页或 “Last chance” 页面因为商品卡片格式可能混杂,噪声会稍高一些,但 AI Agent 依然能提取出可用数据。

AI Agent 能自动处理 Tesco 分页吗?

可以。开启 Enable Pagination 后,AI Agent 会按照你设置的上限,自动遍历 Tesco 分类中的每一页(默认 10 页,最大 5,000 页)。例如一个 Tesco 分类共有 240 个商品、每页显示 36 个商品时,把分页设置为 10,agent 通常就能把整份列表抓全。

什么是 AI scraping?

AI scraping 是一种利用大语言模型从网站中提取结构化数据的方法,它不依赖固定 HTML 规则。agent 会访问页面、理解其中内容,然后按你用自然语言描述的要求返回相应字段。也正因为如此,它在 Tesco 这类经常改版的网站上会更稳。

AI scraping 和传统 Web Scraping 有什么区别?

传统 scraper 依赖固定规则(比如 CSS selector、XPath)。网站一改版,这些规则就会失效。AI scraping 读取的是页面语义,所以 Tesco 的价格即使换了 markup,依然还是 Tesco 的价格。这也是为什么同一套 Datablist 配置可以直接复用到 Morrisons、Sainsbury's 和 Asda,而不需要按站点分别写代码。