像DOM
这样的标准方法可以有选择地解析html页面,但我想知道爬虫(从小到大)如何检测要分析的主要文本在哪里?
主要文本将被分析以捕获其关键字,并与菜单,侧边栏,页脚等混合使用。爬虫如何知道从菜单和侧面部分跳过关键字?
我正在开发一个小型PHP项目来捕获各种HTML页面中的关键字,我不知道如何避免从侧面内容中捕获关键字。任何人都可以描述或至少给我一个提示如何区分HTML页面中的主要内容吗?
答案 0 :(得分:2)
侧栏,菜单和页脚通常在整个站点的每个页面上重复。实际内容通常对每个页面都是唯一的。您可以将其用作区分实际内容的指南。
Crawlers还使用复杂的算法来分析页面上的文本,以确定其作为内容的权重,并且他们倾向于不分享他们的秘密。
没有快捷简便的方法,爬虫开发者必须提出自己的创新方法,并共同使用这些方法来全面了解页面内容。
答案 1 :(得分:0)
如果内容是文本内容,您可以假设页面的主要内容是字密度相对较高的位置。
这意味着页面的主要内容与搜索引擎相关 - 页面的主要内容在dom元素内部,主要是div,其中包括像p,em,b等标签的文字数量等等主要用于文本格式化,高于或高于阈值。
我将从以下逻辑开始
获取网页中使用的所有标记。
我将记下dom元素,其中内容仅由文字和格式标签组成,如p,em,b,li,ul以及锚标签。
我会留下仅包含锚标签的div,并假设它们用于导航目的。
现在,在所有这些中选择数字高于特定阈值的dom元素。
此阈值因网站而异,您可以将其视为平均值(在特定网址结构的网站的所有网页上具有最高文字的div中找到的文字)
算法必须在课程中学习。