解析 Schema.org 元数据是一种利用 Web 架构标准从网页中提取结构化数据的方法。Schema.org 背后的社区负责管理这些标准,并推动在 Web 上使用架构来处理结构化数据。
解析 Schema 元数据具有多种用途,例如查找活动更新信息,或供研究人员收集研究数据。此外,聚合房地产列表、招聘信息和天气预报等数据的网站也能从解析 Schema 数据中获益。
您可以使用多种 Schema 格式,包括 JSON-LD、RDFa 和 Microdata。
JSON-LD(链接数据的 JavaScript 对象表示法)是一种使用 JSON 编码链接数据的格式。该标准的设计使其既便于人类阅读和编写,也便于机器进行解析和生成。
以下是一个关于某本书的网页中 JSON-LD 的示例:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Book",
"name": "The Adventures of Tom Sawyer",
"author": "Mark Twain",
"datePublished": "1876-12-01",
"description": "The Adventures of Tom Sawyer is a novel about a young boy growing up along the Mississippi River in the mid-1800s. It is a classic of American literature and has been loved by generations of readers.",
"publisher": "Penguin Books",
"image": "https://www.example.com/images/tom_sawyer.jpg"
}
</script>
万维网联盟(W3C)推荐的 RDFa(即属性中的资源描述框架)用于在 XML 和 HTML 中嵌入 RDF 语句。
下文展示了 RDFa 在 HTML 页面中的呈现形式。您可以注意到标签属性是如何被用于存储额外数据的。
<!DOCTYPE html>
<html>
<head>
<title>RDFa Example</title>
</head>
<body>
<div about="http://example.com/books/the-great-gatsby" typeof="schema:Book">
<h1 property="schema:name">The Great Gatsby</h1>
<div property="schema:author" typeof="schema:Person">
<span property="schema:name">F. Scott Fitzgerald</span>
</div>
<div property="schema:review" typeof="schema:Review">
<span property="schema:author" typeof="schema:Person">
<span property="schema:name">John Doe</span>
</span>
<span property="schema:reviewBody">
A classic novel that explores themes of wealth, love, and the decline of the American Dream.
</span>
<span property="schema:ratingValue">4.5</span>
</div>
</div>
</body>
</html>
微数据(Microdata)是 WHATWG 制定的 HTML 规范,用于在网页现有内容中嵌套元数据,并可使用 schema.org 或自定义词汇表。
以下是 HTML 中微数据的示例:
<div itemscope itemtype="http://schema.org/Product">
<span itemprop="name">Shiny new gadget</span>
<img itemprop="image" src="shinygadget.jpg" alt="A shiny new gadget" />
<div itemprop="offerDetails" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">$19.99</span>
<link itemprop="availability" href="http://schema.org/InStock" />
</div>
</div>
目前有许多工具可用于解析不同语言的架构,例如 Zyte 的 Extruct 和 RDFLib 库,这些工具使利用 Web 架构标准从网页中提取结构化数据变得十分容易。