此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
微数据
概要
微数据是WHATWG HTML 标准的一部分,用于在网页上的现有内容中嵌套元数据。搜索引擎、网络抓取工具可以从网页中提取和处理微数据,并使用它为用户提供更丰富的浏览体验。搜索引擎从直接访问此结构化数据中受益匪浅,因为它允许搜索引擎了解网页上的信息并向用户提供更相关的结果。微数据使用支持词汇表来描述项目和 name-value 对,以便为其属性赋值。与使用 RDFa 和微格式的类似方法相比,微数据试图提供一种使用机器可读标签注释 HTML 元素的简单方法。
从更高的角度来看,微数据由一组 name-value 对组成。这些组称为元素,每个 name-value 对都是一个属性。项目和属性由常规元素表示。
- 创建元素使用了
itemscope属性。 - 向元素添加属性,
itemprop属性将用于其中一个元素的后代。
In this article
词汇表
谷歌和其他主要搜索引擎支持结构化数据的Schema.org 词汇表。此词汇表定义了一组标准类型名称和属性名称,例如,Schema.org Music Event 表示音乐会表演,startDate 和location 属性用于指定音乐会的关键细节。在这种情况下,Schema.org Music Event 将是itemtype 和startDate 使用的 URL,而location 将是Schema.org Music Event 定义的itemprop。
备注:有关 itemtype 属性的更多信息,请访问https://schema.org/Thing。
微数据词汇表提供了Item 的语义或含义。Web 开发人员可以设计自定义词汇表或使用 Web 上可用的词汇表,例如广泛使用的schema.org 词汇表。Schema.org 提供了一组常用的标记词汇表。
常用词汇:
- 创造性工作:CreativeWork、Book、Movie、MusicRecording、Recipe、TVSeries
- 嵌入性非文字对象:AudioObject、ImageObject、VideoObject
Event- Health and medical types:注意健康和医疗类型在MedicalEntity 之下
OrganizationPersonPlace、LocalBusiness、RestaurantProduct、Offer、AggregateOfferReview、AggregateRatingActionThingIntangible
谷歌,微软和雅虎等主要搜索引擎运营商依靠schema.org 词汇表来改进搜索结果。实现一般目标,临时词汇就足够了。对于其他情况,可能需要设计一个词汇表。在可能的情况下,鼓励作者重用现有的词汇表,因为这样可以更轻松地重复使用内容。
本地化
在某些情况下,覆盖特定区域的搜索引擎可以提供微数据的本地特定扩展。例如,俄罗斯的主要搜索引擎Yandex 支持如hCard(公司联系信息)、hRecipe(食品配方)、hReview(市场评论)和hProduct(产品数据)的微格式,并提供自己的格式来定义术语和百科全书文章。这个扩展是为了解决西里尔字母和拉丁字母之间的音译问题。由于 Schema 词汇表的附加标记参数的实现,俄语网页中的信息索引变得更加成功。
全局属性
itemid——元素的唯一全局标识符。
itemprop——用于向元素添加属性。每个 HTML 元素都可以指定一个itemprop 属性,其中itemprop 由一个名称和值对组成。
itemref——不具有itemscope 属性的元素的后代的属性可以使用itemref 与元素相关联。itemref 提供了元素 id 列表(而不是一些itemid)以及文档中其他位置的其他属性。
itemscope——itemscope(通常)与itemtype 一起使用,以指定块中包含的 HTML 是一个特定元素。itemscope 创建Item 并定义与之关联的 itemtype 的范围。itemtype 是描述项及其属性上下文的词汇表(例如schema.org)的有效 URL。
itemtype——指定将用于在数据结构中定义itemprop(元素属性)的词汇表的 URL。itemscope 用于设置数据结构中按itemtype 设置的词汇表的有效范围。
示例
>HTML
<div itemscope itemtype="https://schema.org/SoftwareApplication"> <span itemprop="name">Angry Birds</span> - REQUIRES <span itemprop="operatingSystem">ANDROID</span><br /> <link itemprop="applicationCategory" href="https://schema.org/GameApplication" /> <div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating"> RATING: <span itemprop="ratingValue">4.6</span> ( <span itemprop="ratingCount">8864</span> ratings ) </div> <div itemprop="offers" itemscope itemtype="https://schema.org/Offer"> Price: $<span itemprop="price">1.00</span> <meta itemprop="priceCurrency" content="USD" /> </div></div>结构化数据
| itemscope | itemtype | SoftwareApplication (https://schema.org/SoftwareApplication) | |
| itemprop | name | Angry Birds | |
| itemprop | operatingSystem | ANDROID | |
| itemprop | applicationCategory | GameApplication (https://schema.org/GameApplication) | |
| itemscope | itemprop[itemtype] | aggregateRating [AggregateRating] | |
| itemprop | ratingValue | 4.6 | |
| itemprop | ratingCount | 8864 | |
| itemscope | itemprop[itemtype] | offers [Offer] | |
| itemprop | price | 1.00 | |
| itemprop | priceCurrency | USD | |
结果
备注:从 HTML 中提取微数据结构的便捷工具是 Google 的结构化数据测试工具。在上面显示的 HTML 上尝试一下。
浏览器兼容性
在 Firefox 16 中支持,在 Firefox 49 中移除。