Retail Scrapers 本身刻意保持无状态。这个包只负责提取记录;至于结果是作为 artifact 保存、提交到另一个仓库、写入数据库,还是进入数仓,都由使用者自己的 workflow 决定。
仓库里提供了一份可复制的 workflow 模板:
examples/github-actions/scheduled-scrape.yml
- fork 本仓库,或者把这个包复制到你自己的爬虫仓库。
- 将模板复制到
.github/workflows/retail-scrape.yml。 - 打开 GitHub 的 Actions 页面,手动运行
Retail Scrapers scheduled run。 - 在运行结果页面下载
retail-scrape-output-*artifact。 - smoke run 成功后,再调整 cron、渠道、
max_items和严格模式。
模板里的首次定时任务故意保持很小:
schedule:
- cron: "17 5 * * *"生产使用时,更推荐“小规模每日价格抓取 + 低频 catalog 抓取”的节奏。零售网站经常改版,小规模 smoke run 比一次性大规模失败更容易排查。
在 workflow dispatch 表单里填写:
channel:渠道 ID,比如elkjop-no。mode:选择catalog。max_items:先从20开始,确认成功后再提高。no_strict:探索阶段保持开启;当你明确期待完整输出时再关闭。
抓取结果会作为 GitHub Actions artifact 上传。
价格抓取需要准备一个 CSV 文件,至少包含:
id,url
product-1,https://www.example.com/product/1
product-2,https://www.example.com/product/2然后运行 workflow:
mode:选择prices。input_file:填写你的 CSV 文件路径。
Amazon 分别使用 amazon-de、amazon-gb、amazon-it、amazon-es 四个渠道 ID。
价格目标 URL 必须属于所选国家站。英国保留 GBP,德国、意大利和西班牙保留 EUR;
本工具不进行汇率换算。
可以先按这个拆分开始:
- 每日价格 smoke:小 URL 清单,开启严格模式。
- 每周 catalog smoke:较小的
max_items,观察期间可关闭严格模式。 - 手动全量 catalog:只在确实需要刷新、并确认目标网站使用边界后运行。
除非你的项目明确要发布样例数据,否则不要把生成数据放进 scraper 包本身。artifact 是一个更安全的默认选择:它能证明 workflow 跑过,又不会把工具仓库变成数据仓库。
- 控制请求量。
- 尊重目标网站的服务条款、robots 规则和适用法律。
- 不抓取需要登录或私有授权的数据。
- 不把 cookie 或凭据写进仓库。
- 如果要上传到下游系统,用 GitHub Secrets 管理 token。