抓取工具如何解析网页上的文字?

时间:2012-05-12 21:41:52

标签: php dom html-parsing web-crawler

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

主要文本将被分析以捕获其关键字,并与菜单,侧边栏,页脚等混合使用。爬虫如何知道从菜单和侧面部分跳过关键字?

我正在开发一个小型PHP项目来捕获各种HTML页面中的关键字,我不知道如何避免从侧面内容中捕获关键字。任何人都可以描述或至少给我一个提示如何区分HTML页面中的主要内容吗?

2 个答案:

答案 0 :(得分:2)

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

Crawlers还使用复杂的算法来分析页面上的文本,以确定其作为内容的权重,并且他们倾向于不分享他们的秘密。

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

答案 1 :(得分:0)

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

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

我将从以下逻辑开始

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

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

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

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

此阈值因网站而异,您可以将其视为平均值(在特定网址结构的网站的所有网页上具有最高文字的div中找到的文字)

算法必须在课程中学习。