采集卡片
Shopify Storefronts 采集器
一家 Shopify 店铺公开的每一件商品:标题、价格、划线价、库存、SKU、供货商、类型、标签和图片,每件一行,直接取自店面自己的目录文件,不需要账号,也不开浏览器。
它采什么
一家 Shopify 店铺公开的每一件商品:标题、价格、划线价、库存、SKU、供货商、类型、标签和图片,每件一行,直接取自店面自己的目录文件,不需要账号,也不开浏览器。 它是一张采集器卡片,也就是说全部约定只有一条:填好表单,回来一张表。不会打开浏览器窗口,不占用你套餐里的任何自动化名额,请求走的是普通 HTTP,带着真实浏览器的 TLS 指纹。
用你自己的地址跑就很好;运行时可以选代理,但这个目标并不需要。无论走的是哪条路,每一行都会记下来——见下面的溯源列。
你要提供什么——7 项
应用画出的那张表单,直接读自这张卡片本身。下面每一条提示,都是运行对话框里显示在该字段旁边的那一条,所以这里没有任何脱离产品另写一遍的说明。
它唯一需要的那个答案
- startUrls
- Stores · list · 必填
One store per line — the domain, the homepage, or any product or collection link from it. A 404 means that host does not serve this file: either it is not a Shopify store, or it is one that has switched the catalogue off. The collector is fine either way and the other stores keep going.
其余的都可填可不填
- maxProductsPerStore
- Products per store · number
- keywords
- Title contains · list
- productTypes
- Product type · list
- vendors
- Vendor · list
- minPrice
- Minimum price · number
- onlyAvailable
- In stock only · boolean
Rounded up to whole pages of 250. There is no early stop — a shop with forty products still costs the page count asked for, so raise this for a big catalogue rather than leaving it high for everything.
Keeps a product only when its title contains one of these. Costs no extra requests — the reply already carried the title.
Matched against the shop’s own type, exactly as it writes it.
Useful on a reseller, where one storefront carries many brands.
In the store’s own currency, which this endpoint does not name. A product with no price fails this rather than counting as zero.
Drops products whose first variant is sold out.
会拿回什么——22 列
每次运行生成一个数据集——一张带类型的表,归你的工作区所有:可以排序、筛选、在网格里直接编辑、整张导出,也可以通过本地 API 读回来。下面就是它创建时带的列。
有 3 列标着可能为空。那是关于记录本身的事实,而不是关于采集器的——一条没有标地点的帖子、一个没有商业类目的账号——把它说出来,是为了让空单元格不被读成采集器坏了。至于返回里根本不带的列,在上游就被删掉了,不会空着交付,所以这里没有一列是装饰。
来自 Shopify Storefronts 的 18 列
| 键名 | 列 | 类型 |
|---|---|---|
| title | Product | text |
| productUrl | Product page | url |
| vendor | Brand | text |
| productType | Type可能为空 | text |
| price | Price | number |
| compareAtPrice | Compare-at price可能为空 | number |
| available | In stock | select |
| sku | SKU | text |
| variantCount | Variants | number |
| tags | Tags可能为空 | text |
| imageUrl | Image | url |
| imageCount | Images | number |
| handle | Handle | text |
| publishedAt | Published | datetime |
| createdAt | Created | datetime |
| updatedAt | Updated | datetime |
| productId | Product ID | text |
| searchTerm | Store | text |
每个采集器都会写的 4 列
每张卡片上都是同样这四列,好让一张表在几个月后仍能回答它的行是怎么来的:来自哪个服务、什么时候、请求带的是哪个环境的身份,以及那个身份当时是否已登录。
| 键名 | 列 | 类型 |
|---|---|---|
| platform | Platform | text |
| collected_at | Collected at | datetime |
| profile | Collected by | profile |
| logged_in | Signed in | select |
跑它的四种方式
「采集器」标签页。 挑中这张卡片,填好表单,按「开始」。从这里发起的每一次运行都会生成一张新表,以你搜索的内容和时间命名。想先试试也可以——它只采一页,什么都不写,并告诉你哪些列拿回了内容。
问助手。 它手里有整个目录,所以这张卡片是一句话,而不是一张表单。它会按你说的话把上面那些参数填好,并在开跑之前拿给你看。
通过 MCP 或本地 API。 同一张卡片,从编程 Agent 里调用——MCP 服务器上的 argus_run_scraper,或者本地 API 的 POST http://127.0.0.1:39219/v1/scrapers/run。旁边有一个什么都不写入的示例调用。
{
"kind": "shopify_products",
"inputs": {
"startUrls": [
"…"
]
}
}作为工作流里的一个步骤。 Run scraper 步骤把这个采集器放进一条自动化流程的中间——先采、再筛、再发信——整棵流程照样一个窗口都不开。它也是唯一能推翻「一次运行一张表」规则的调用方:指定一张你命名的表,它会在表不存在时按上面的列建好,之后每次运行都写进这张表,追加或者按你指定的匹配列就地更新。这个步骤会把表名、表 id 和行数交给下一步。
它到哪里为止
它不会去驱动页面。凡是需要真实浏览器的事——背后没有列表接口的网站,或者任何操作你自己账号的事——都该交给自动化流程。那是另一件工具,而不是这件工具的劣化版。
它不登录任何地方。未登录读取公开页面是已成定论的做法——Bright Data 未登录采集 Meta 并且胜诉,hiQ 登录后采集 LinkedIn 则败诉——所以这张卡片不要账号,也不持有账号。