Zyte API 把 HTTP 获取、浏览器渲染和自动结构化抽取放进同一 POST https://api.zyte.com/v1/extract 入口。认证使用 Basic(API Key 作为用户名、密码留空)。接入时最容易浪费的,是还没证明需要渲染,就把所有 URL 都打成浏览器请求。正确做法是用同一商品页做材料对照,再把胜出策略写进生产配置。
固定一个可公开复核的商品页
官方文档常用 https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html。先手写验收真值:书名、价格字符串、是否有库存提示。后续三轮请求都对该 URL,只改变请求字段,方便比较成本与完整度。把真值表和请求版本号放进同一记录,后面才能判断是页面改版还是策略回退。
第一轮只要 httpResponseBody
请求体只开 httpResponseBody: true。若原始 HTML 已能稳定解析出名称与价格,生产默认就应停在 HTTP 层:更快,也避开浏览器专属限制。浏览器请求不能随意改初始 method/body/自定义头(除 Referer),也不适合拿非 HTML 主体;需要那些能力时另评估 CDP 路线。
第二轮 browserHtml,第三轮 product
第二轮开 browserHtml: true,比较渲染后 DOM 是否补出了 HTTP 缺失的节点;需要画面证据时可同时要 screenshot。默认 iframe 内容为空,必要时再开 includeIframes;Shadow DOM 内容通常要靠 actions 里的 evaluate 注入可见节点后才能出现在 HTML 中。第三轮只开 product: true(一次请求不要并行开多种自动抽取类型),读取返回的 product 对象。可用 productOptions.extractFrom 显式指定 httpResponseBody、browserHtmlOnly 或 browserHtml;不写明时默认可能变化,生产配置应写死。
| 轮次 | 主要字段 | 若失败先查 |
|---|---|---|
| HTTP | httpResponseBody | 是否根本不需要 JS |
| 浏览器 HTML | browserHtml / screenshot | 等待、弹窗、iframe、Shadow DOM |
| 自动商品 | product + extractFrom | 类型是否选错、字段空值率 |
把对照结论写成可执行策略
若 HTTP 已稳定得到名称与价格,就不要默认升浏览器。只有缺字段或动态加载时,才把 extractFrom 升到浏览器侧,并记录费用与耗时。动作、cookie、地理与会话选项只服务于既定字段,避免把每次抽取做成完整交互剧场。上线后若 product 突然变空,先用同一 URL 重跑 HTTP 与 browserHtml 对照,区分站点改版和抽取模型漂移。
- 保存三轮原始响应与字段对照表。
- 选定默认层与 extractFrom,写入客户端配置。
- 对必填字段做类型、空值、币种/价格格式校验。
- 抽查原页,确认不是缓存或错误 SKU。
- 为阻断、超时、空 product 分设告警,而不是混成一个失败码。
产品与文档:https://www.zyte.com/ 、https://docs.zyte.com/
数据统计
相关导航
开源中国提供的代码处理、编码转换与开发文档入口
Diffbot
先 Analyze 验样本,再启动可控 Crawl
Jina Reader API
将公开网页转成 Markdown 或 JSON
IPIP.NET
IPv4、IPv6 地理位置及 ASN/BGP 网络数据平台
ScrapeGraphAI
用 Schema 约束字段并以 status 验收
腾讯WeTest
性能测试、崩溃分析与小程序云测平台
菜鸟工具
汇集格式转换、正则测试、在线编译与开发资源的工具站
UU在线工具
覆盖文本、图片、文件和开发任务的中文在线工具箱
暂无评论...
