通过 Schema.org 让网站更智能-结构化数据工具 更新
- UID
- 1066743
|
通过 Schema.org 让网站更智能-结构化数据工具 更新
验证结构化数据无论您编写了多久的结构化数据,仍然需要能够验证该数据,确保没有出错。
由于影响甚微,Schema.org 的问题可能很难发现。例如,可能要花更长时间才会意识到,在搜索引擎的结果中,您所销售的产品的丰富代码片段没有正确显示,因为搜索引擎结果是第三方网站。
幸运的是,有一些工具可以帮助处理嵌入在 HTML 中的结构化数据。这些工具能让您清楚地了解结构化数据的含义,并帮助确保您没有犯错。让我们看看 Yandex Structured Data Validator。
另一个数据测试工具
除了 Yandex 的工具之外,Google 还有一个很有用的工具 。
在 上,我选择“enter HTML code fragment here”。此时会显示一个文本区,我将 中的完整的读书俱乐部 RDFa 粘贴到其中。参见图 6。
图 6. Yandex Structured Data Validator
没有列出警告或错误。但是,如果我将第二行上的 property="name" 更改为 property="title",则会在结果部分出现一个警告。图 7 展示了此警告
图 7. Schema.org 警告
Yandex 验证器整合了为 Schema.org 记录的预期表达,而且识别出 title 不是 Organization 的有效属性缩写。类似地,如果您在 HTML 中使用了英式英语拼写法 Organisation,验证器会发出一条警告表明 http://schema.org/Organisation 在 Schema.org 中未知。这正是人类可能忽略的问题,因为这个单词实际上是根据人们的习惯来正确拼写的。但是,Schema.org 采用了不同的拼写习惯。
如果您遇到一个非常基础的语法问题,比如说将 vocab 属性拼错或缺少等号,那么该工具几乎会抛出这样一个错误,比如:
Microformats not detected =(
但是,Yandex 验证器确实有一些局限。例如,我尝试验证了本系列第 3 部分的 HTML,其中的一本书也被标记为 product。第一行如下所示。
1
| <div vocab="http://schema.org/" typeof="Product Book">
|
这会让 Yandex 验证器感到困惑,它会严格将资源视为 Product,并发出了如图 8 所示的警告。
图 8. 包含虚假错误的 Yandex Structured Data Validator
Yandex 工具支持所有 3 种 Schema.org 格式,还有一个可用的 API,可用来自动验证站点的有效性。
我之前应该提到过,Google 的 能够验证让 Yandex 验证器感到困惑的 Product/Book 示例。尽管如此,在使用任何搜索引擎验证工具时保持小心谨慎始终很重要。它们的主要目标是确认它们将为丰富代码片段识别的标记。尽管任何给定 Schema.org 验证器中的有效性是表明您的网站元数据是否正确的重要指标,但您可能发现一些存在分歧的领域。
通过 Versa 从网上读取 Schema.org现在您已在网站上发布了 Schema.org 结构化数据,并确认它是有效的,那么您如何实际使用它呢?
有许多工具可用来解析来自网页的结构化数据,但我将重点介绍我自己开发的一个工具。Versa 是一个处理类似 RDF 的数据的开源(采用 Apache 许可)库,它的一个模块支持 RDFa。它需要 Python 3,如果您已设置 Python 3,只需通过以下命令来安装 Versa。
您可以使用 Versa 来解析以 RDFa 格式使用 Schema.org 的网站。下面清单中的示例从包含大量结构化数据的指定页面中提取所有事物的名称。此页面提供了对 Denver Public Library 拥有的与作者 Chinua Achebe 相关的所有图书和其他资料的描述。(我的日常工作是在网络上发布这些包含结构化数据的页面,展示各种库向公众提供的许多很酷的东西。)
清单 4. 用 Versa 解析运用 Schema.org 的网站1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #Import the needed code
import urllib
from versa.reader import rdfalite
#Set the web page to be parsed
site = 'http://link.denverlibrary.org/resource/FRqlF2zfz4A/'
#List to store the parsed data
triples = []
#Open the web page for reading over the network
fp = urllib.request.urlopen(site)
#Run the parser
rdfalite.totriples(fp.read(), triples, site)
#Empty set where results will be added
names_of_things = set()
#Loop over all data for properties that are Schema.org name
for resource, property, value in triples:
if property == 'http://schema.org/name':
names_of_things.add(value)
#Print the set of results
for name in names_of_things:
print(name)
|
如果您已熟悉 Python,借助注解,您应该很容易理解代码。即使您不熟悉 Python,您或许也能了解它的大意。 输出(使用 Schema.org 显式命名的资源集)如下所示。
清单 5. Versa 输出1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| How the leopard got his claws
Achebe, Chinua
The short century : independence and liberation movements in Africa, 1945-1994
Arrow of God
Civil peace
Achebe, Chinua -- Interviews
Morning yet on creation day : essays
Vengeful creditor
Achebe, Chinua -- Criticism and interpretation
Home and exile
No longer at ease
Anthills of the Savannah
There was a country : a personal history of Biafra
Things fall apart
Hopes and impediments : selected essays
Another Africa
The education of a British-protected child : essays
Conversations with Chinua Achebe
Arrow of god
Girls at war and other stories
A man of the people
|
结束语在本系列的第 4 部分中,我介绍了现代网站的结构化、机器可读数据的重要性。具体来讲,我描述了 Schema.org 数据模型,解释了如何在 HTML 中正确表达它。我介绍了如何排列和归档 Schema.org 词汇表,展示了从网站生成结构化数据、验证它并解析它的工具。
现在,您可以利用搜索引擎、智能代理和网络上的其他许多创新的最新特性。 不要犹豫,尽情试验吧,因为与所有技术一样,亲自解决您自己的问题领域才是最佳掌握方法。 |
|
|
|
|
|