爬虫如何解析网页中的文本


How do crawlers parse text from webpage?

有像DOM这样的标准方法可以有选择地解析 html 页面,但我想知道爬虫(从小到大(如何检测要分析的正文在哪里?

将分析以捕获其关键字的正文与菜单、侧边栏、页脚等混合在一起。爬虫如何知道跳过菜单和侧面的关键字?

我正在做一个小型PHP项目,从各种HTML页面中捕获关键字,我不知道如何避免从侧面内容捕获关键字。谁能描述或至少给我一个提示,如何将HTML页面中的主要内容与其他内容区分开来?

侧边栏、菜单和页脚通常在整个网站的每个页面上重复出现。每个页面的实际内容通常是唯一的。您可以将其用作区分实际内容的指南。

爬虫还使用复杂的算法来分析页面上的文本,以确定其作为内容的权重,并且它们往往不会分享它们的秘密。

没有快速简便的方法,爬虫开发人员必须提出自己的创新方法,并共同使用这些方法来全面了解页面内容。

如果内容是文本的,您可以假设页面的主要内容是单词密度相对较高的位置。

这意味着与搜索引擎相关的页面的主要内容 - 页面的主要内容在dom元素中,主要是div,其中文字的数量包括标签,如p,em,b等,本质上是用于文本格式,高于或高于阈值。

我将从以下逻辑开始

获取网页中使用的所有标记。

我将记下 dom 元素,其中内容仅由文字和格式化标签(如 p,em,b,li,ul 以及锚标签(组成。

我会留下只包含锚标签的div,并假设它们用于导航目的。

现在,在所有这些元素中,选择数字高于特定阈值的dom元素。

此阈值因网站而异,您可以将其视为 avg(在div 中找到的文本在特定 url 结构的网站的所有页面上具有最高的文本(

算法必须在其过程中学习。