Skip to main content
输入与输出架构定义了 Bright Data Scraper Studio IDE 采集器的数据契约:即一次采集运行接受哪些字段,以及采集器返回哪些结构化字段。
  • 输入架构定义一次采集运行接受的字段,例如 urlkeywordcountrydate,或你的交互代码从 input 读取的任何自定义字段。
  • 输出架构定义抓取器返回的结构化字段,基于 collect() 发出的数据。
这两种架构都在 Bright Data Scraper Studio IDE 中配置。当你点击 Save to Production 时,架构更改会应用到生产采集器。

什么是输入架构?

输入架构定义了你的抓取器在运行时可以接收的值。 抓取器通常使用 url 输入,但输入并不局限于 URL。根据采集器逻辑,输入可以是关键词、位置、日期、ID、国家或任何自定义参数。 你的交互代码通过 input 对象读取输入值:
对于基于关键词的抓取器:
如果目标 URL 或采集逻辑硬编码在抓取器代码中,抓取器也可以在没有用户提供输入的情况下运行。

定义输入参数

要在 Bright Data Scraper Studio IDE 中定义输入架构:
  1. Scraper Studio IDE 中打开你的采集器。
  2. 前往 Code 选项卡。
  3. 点击 Add input parameter
  4. 输入字段名称,例如 urlkeywordcountrydate
  5. 添加可选的说明。
  6. 选择字段类型。
  7. 如果采集器缺少该字段就无法运行,则将其标记为 Required
  8. 点击 Save
  9. 当采集器就绪后,点击 Save to Production
在采集器已经保存后,点击 IDE 中的 Edit schema 即可更新其输入架构。

输入参数有哪些设置?

采集输入是什么样的?

基于 URL 的采集器可以接受一个或多个 URL:
采集器也可以接受多个输入字段:
只有标记为 Required 的字段才必须为每个输入对象提供。可选字段可以省略。

什么是输出架构?

输出架构定义了数据点的结构以及数据的组织方式。 在 Bright Data Scraper Studio IDE 中,输出架构通常由传递给 collect() 的对象生成。
这会生成如下输出字段:
当抓取器保存时,Scraper Studio 会检测所采集数据的结构,并创建或更新输出架构。

更新输出架构

有两种方式更新输出架构:从解析器代码自动更新,或在架构编辑器中手动更新。

自动更新架构

  1. 在解析器代码中添加或更改字段。
  2. 运行预览,确认必填字段按预期返回。
  3. 点击 Save to Production
  4. 如果 Scraper Studio 检测到架构更改,点击 Update schema
  5. 再次点击 Save to Production

手动更新架构

  1. 点击 IDE 中的 Edit schema
  2. 按名称和类型添加或编辑字段。
  3. 配置必填标记、默认值、格式化、验证或 PII 设置。
  4. 保存架构。
  5. 点击 Save to Production

什么是输出架构编辑器(Output Schema Editor)?

输出架构编辑器精确定义了你的采集器返回哪些字段,以及每个字段如何验证、格式化和交付。 编辑器有两种视图: 点击某个字段行会打开该字段的配置侧面板。

输出架构是如何构建的?

输出架构是一个 JSON 对象,包含顶层的 type 和一个 fields 对象:

输出字段可以有哪些属性?

这些属性适用于用户定义的输出字段。

在侧面板中配置字段

侧面板包含针对特定字段的设置。

有哪些可用的默认值?

可用的默认值取决于字段类型。

有哪些可用的输出字段类型?

Scraper Studio 支持以下用户定义的输出字段类型。

text

自由格式文本。
示例值:

number

整数或小数。数字字符串可以转换为数字。
示例值:

url

URL 字符串。仅接受 http://https:// URL。
示例值:

price

以数值和货币代码表示的货币值。
示例值:
价格格式预设:

boolean

true/false 值。
示例值:

date

日期或时间戳值。
日期格式预设: 区域格式化可以包括:
  • 区域设置,例如 en-USfr-FRru-RU
  • 日期样式:longmediumshort
  • 时间样式:longmediumshort

country

两个字母的 ISO 3166-1 alpha-2 国家代码。
示例值:

phone

解析为结构化组件的电话号码。
示例值:

image

已下载或被引用的图片。
当启用 Download 时,文件会存储在已配置的交付目标中。在适用情况下,文件下载与页面加载分开计费。

videopdfdoc

这些文件类型使用与 image 相同的下载和行为设置。
支持的文件字段类型:

文件字段输出选项

对于已下载的文件字段,例如 imagevideopdfdoc,输出架构编辑器允许你控制文件元数据的返回方式。 这些设置在字段行为设置为 Object 时出现。

Behavior

使用 Behavior 选择文件字段的返回方式。
  • Simple — 仅返回已下载的文件路径或原始远程 URL。
  • Object — 返回一个包含文件元数据的对象,例如 file_pathremote_urlcontent_typefile_sizeresponse_headers,具体取决于启用了哪些选项。
当你需要的不仅仅是文件路径时使用 Object,例如在验证文件类型、检查文件大小或调试下载头时。

Include content type

启用 Include content type 以在输出中包含文件的 MIME 类型。 示例:
用它来确认已下载的文件是图片、PDF、视频还是其他媒体类型。

Include file size

启用 Include file size 以包含以字节为单位的已下载文件大小。 示例:
用它来验证文件大小、检测空的或意外过大的下载,或排查失败的媒体处理。

Include response headers

启用 Include response headers 以包含 Scraper Studio 下载文件时收到的 HTTP 响应头。 示例:
响应头可以帮助你调试文件下载、验证内容类型、检查缓存行为,以及排查意外的媒体响应。

示例输出

Behavior 设置为 Object 且所有元数据选项都启用时,输出可能如下所示:

array

有序的值列表。元素类型通过 items 定义。
空数组行为: 嵌套对象的数组:

object

带有自身子字段的嵌套对象。

有哪些可用的 HTML 转换字段类型?

示例:

如何验证字段值?

自定义验证让你定义在字段的每个采集值上运行的 JavaScript 规则。 抛出错误可将该值标记为无效:
当为必需的输出质量配置了验证时,未通过验证的行会被视为错误行。

如何格式化字段值?

自定义格式化让你在输出交付之前转换字段值。
当内置格式化选项不符合所需的输出形态时,使用自定义格式化。

我应该在什么时候使用 collect() 而不是 set_lines()?

记录的发出方式会影响输出数据集。 使用 collect() 的示例:
使用 set_lines() 的示例:

我可以添加哪些系统字段?

系统字段由 Scraper Studio 生成。它们的名称和类型是固定的。你可以在输出架构配置的 Additional data 下打开或关闭它们。 screenshothtmlwarc 处于活动状态时,文件会下载到已配置的存储目标。

如何添加截图水印?

当启用 screenshot 系统字段时,可以为截图添加水印。每个水印项都有一个标签和一个数据源。

完整的输出架构是什么样的?

相关内容

开发抓取器

在 IDE 中构建抓取器的分步演练

函数参考

带有参数和示例的交互与解析器函数

发起采集与交付

触发采集并将输出交付到你的目标

触发抓取器(API)

通过 API 运行已发布的采集器进行批量采集