【发布时间】:2011-04-27 09:28:15
【问题描述】:
Google 在解析网络时如何找到相关内容?
假设,例如,Google 使用 PHP 原生 DOM 库来解析内容。他们会用什么方法在网页上找到最相关的内容?
我的想法是它会搜索所有段落,按每个段落的长度排序,然后从可能的搜索字符串和查询参数中计算出每个段落的相关百分比。
假设我们有这个 URL:
http://domain.tld/posts/stackoverflow-dominates-the-world-wide-web.html
现在从那个 URL 中我会发现 HTML 文件名将是高度相关的,所以我会看到该字符串与页面中的所有段落相比有多接近!
当您分享页面时,Facebook 分享就是一个很好的例子。 Facebook 迅速对链接进行 bot 处理,并带回图片、内容等。
我认为某种计算方法是最好的,根据周围元素和元数据计算相关性百分比。
是否有任何关于内容解析最佳实践的书籍/信息,涵盖如何从网站获取最佳内容、可能讨论的任何算法或任何深入的回复?
我想到的一些想法是:
- 查找所有段落并按纯文本长度排序
- 以某种方式找到
div容器的宽度和高度并按 (W+H) 排序 - @Benoit - 检查元关键字、标题、描述并检查段落中的相关性
- 查找所有图像标签并按最大和远离主要段落的节点长度排序
- 检查对象数据,例如视频,并从最大的段落/内容 div 中计算节点数
- 找出之前解析的页面的相似之处
我需要这些信息的原因:
我正在建立一个网站,网站管理员向我们发送链接,然后我们列出他们的页面,但我希望网站管理员提交一个链接,然后我去爬取该页面以查找以下信息。
- 图片(如果适用)
- 来自最佳文本片段的
- 将用于我们的搜索引擎的关键字,(Stack Overflow 风格)
- 元数据关键字、描述、所有图片、更改日志(用于审核和管理目的)
希望你们能理解,这不是针对搜索引擎的,而是搜索引擎处理内容发现的方式与我需要它的环境相同。
我问的不是商业机密,我问的是你个人对此的处理方式。
【问题讨论】:
-
这是一个非常好的问题。我渴望看到答案。我认为页头中的
<meta>标签以及页面标题占了很大一部分,以及最大div区域中的第一段(按宽度×长度排序)。 h1、h2、b、i、em,强标签也应该是相关的。 -
是的,但元标签是可选的,建议使用 facebook 等应用程序,但有一半时间网站管理员不使用它们,所以总是必须有一个逻辑后备,关于 x/ 的要点y :)
-
目前还没有回复,发生了什么:O
-
@Robert 这是一个相当复杂的问题! :)
-
几乎任何能对此给出合理答案的人都将受到 NDA 保护,并且获得了丰厚的报酬。这很可能是当今 CS 中最有价值的问题。
标签: php parsing screen-scraping relevance