搜索引擎如何从html页面中获取结构化数据?

时间:2012-06-12 01:54:57

标签: html search seo search-engine semantic-web

系统如何确定哪个html元素包含有关哪个变量的数据?

HTML5允许用户标记其元素,如

<div data-productname=BMW>BMW</div>

但搜索引擎如何使用旧网站进行操作?

6 个答案:

答案 0 :(得分:5)

data-属性供作者用于自己的目的,用于“私人使用”。浏览器,搜索引擎和其他软件应该忽略它们,除了专门为使用它们而定制的软件根据分配给他们的私人含义。

所以使用它们的任何搜索引擎都会被破坏。

通常,搜索引擎不会尝试确定哪个html元素包含有关哪个变量的数据。它们对页面的文本内容进行操作,并在某种程度上对某些标记元素(如h1进行操作,可以假设它们具有比其他文本更高的相对相关性。)

已经并且正在开发用于低级元数据的系统,其可以使用例如具有特殊名称或一些新属性的类属性。一些主要的搜索引擎在某些方面表达了对此的支持,特别参见http://www.schema.org。但在实践中,他们似乎主要是针对非常大的网站,根据尚未公开披露的原则。

答案 1 :(得分:0)

rdfa和微格式等语义标记支持产品模式。

许多产品网站还希望您以特定格式提供包含产品数据的Feed。

答案 2 :(得分:0)

  

他们如何得出结构化信息?

他们将解析页面的html元素,并将它们存储到与搜索引擎本身一样多样的数据结构中。

有些搜索引擎会将元信息编入索引,但主要搜索引擎已开始忽略元标记。

大多数搜索引擎会考虑:

  • 纯文本信息
  • 单词和短语的邻近信息
  • 引用类似信息的链接
  • 页面标题

这是一个有趣的信息图形,可以回答您的任何其他问题: http://ppcblog.com/how-google-works/

答案 3 :(得分:0)

在语义网成长之前(我不确定,何时以及将以何种最终形式出现),从纯HTML中检索含义确实存在一些问题。如果(不一定是HTML)页面的发布者不使用某种标准方式来说明哪些数据是什么,那么您(作为搜索引擎的一方)应该自己推断出语义。首先,由于提到“非HTML”页面是新鲜的,因此存在托管XML页面的站点,这些页面伴随着XSL以便在浏览器中呈现。如果您知道正在使用的模式或DTD,XML会为您提供更多语义信息。 (顺便说一句,维基百科确实为档案提供了他们的XML文章。)如果没有使用或未记录XML,可以这么说,还有第二种方法,需要专家和程序员。专家是分析内容并决定将HTML页面的哪些部分视为存储特定信息的模板的人。例如,您可以从某些互联网目录的html页面详细说明搜索结果的模板,并为每个列出的站点提取类别,评级和其他内容。可以使用任意编程语言(C ++,Python等)在网页中解析和检测这些模板。在此之后,您可以应用众所周知的map-reduce算法或其他方法,通过键值对索引提取的数据。如果你看看哪些网站通常以这种模板化的方式处理,你会发现它们很大,很公开,结构合理(随着时间的推移结构变化很小)。这对编写和重用模板很有意义。当然,如果相应的站点标记中的内容发生了变化,相同的专家应该监控数据提取质量并编辑模板。意义的第三个资源是词汇。例如,如果您拥有全面的地理名称,bussines公司(包括automanufacturers的子类别)和其他分类的东西,您几乎可以自动地在语义索引中点击它们。我说“差不多”,因为你应该根据上下文单词对每一个内容进行加权 - 在关于计算机的文档中,Java最有可能是关于编程语言,而在旅行社的网站上,它更有可能一个岛屿。

答案 4 :(得分:0)

在您的特定示例中,您应该考虑使用RDFa来描述HTML文档中的数据。您会注意到我没有提到使用Microdata,因为RDFa可以为爬虫提供更丰富,更多面的数据。在您的特定情况下,您可以利用GoodRelations词汇表(用于电子商务,产品和服务),schema.org词汇表(借用GoodRelations)和Vehicle Sales Ontology(用于汽车)。请参阅下面的工作示例:

<div prefix="sc: http://schema.org/ gr: http://purl.org/goodrelations/v1# vso: http://purl.org/vso/ns#" 
     typeof="vso:Automobile gr:ProductOrServiceModel sc:Product" 
     resource="http://dbpedia.org/page/BMW_1_Series">
    <span property="gr:name sc:name">BMW 1 Series</span>
</div>

这会在每个方面公开您的数据,使其几乎任何搜索引擎(包括语义搜索引擎)都可以理解和消费。此外,您还可以使用相同的URI来链接到DBPedia(维基百科数据库)中的资源,以识别您的实例。

答案 5 :(得分:0)

有几种方法可以提取这类信息:

  • 结构化信息可以使用例如明确提供。 RDF或其他元数据描述语言,例如来自schema.org
  • 的语言
  • Google可能与电子商务业务中的价格比较服务和/或大型个人参与者签订合同,这使他们可以从数据库或使用特殊协议检索结构化信息。
  • 有一些流行的电子商务引擎,所以如果他们学习如何从特定引擎的HTML中提取数据,他们就可以处理大量使用该引擎的个体商店。
  • 可以应用启发式,以便蜘蛛识别看起来像产品描述的页面并自动提取一些结构化信息。可以容易地识别许多元素,例如,产品名称可能是放置在H1标签中的页面顶部的一些文本,如果有表格,它可能会查找常见的属性名称,例如&#34; price&#34;或&#34;颜色&#34;并尝试在桌子附近找到匹配值(基于简单模式可以相对容易地识别价格,对于许多其他领域也是如此)。如您所知,Google可以根据具有导航菜单的典型页面的启发式,自动提取有关网页导航菜单的信息(无需页面本身的任何帮助)。大多数商店页面也有典型的布局,产品页面有一些典型的属性,因此可以建立类似的启发式检测产品数据。
  • 现在谷歌最近开始使用完整的Chrome渲染引擎渲染网页,甚至运行JavaScript,他们能够生成整个页面的DOM模型,这意味着他们可以应用&#34; visual&#34;启发式,也就是&#34;产品名称是页面顶部的一些文字,用更大的字体书写,周围环境&#34;我公司的一个产品进行了类似的分析,所以我知道它很有可能(虽然计算成本很高)。