首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML文本分析

HTML文本分析
EN

Stack Overflow用户
提问于 2011-02-19 15:40:02
回答 2查看 811关注 0票数 3

我有一个爬虫收集文章从网络和存储标题和身体数据库。到目前为止,程序员必须为每个源(通常是XPath,有时是正则表达式)提供一组规则,以指向网页的文章标题和正文部分。现在,我试图向前迈进一步,让程序自动检测标题和正文的文章。我的第一种方法是根据一些共同的标准为每个元素添加权重。例如:

代码语言:javascript
复制
//@x-weight = 1.0

//h1/@x-weight * 2.0

//h2/@x-weight * 1.8

有更多的规则,但你明白重点。在根据标记分配权重之后,我会考虑到其他一些方面,比如与/head/title的相似性和关键字的数量。这种方法虽然对大多数网页产生了不错的效果(感谢SEO专家:P),但对其他网页来说却是灾难性的失败。我正在考虑使用人工神经网络的可能性,但是我找不到足够的证据来证明我会得到更好的结果。另一种选择是将CSS带入游戏中,并根据字体大小调整权重。

问题:

  1. 我应该选择哪条路?
  2. 我是不是遗漏了什么?
  3. 有更好的办法吗?

PS:我知道这样的问题没有一个完美的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2011-02-19 16:03:23

我的建议是看CSS,而不是h1、h2、h3,因为它们在大多数网站中并没有真正使用。大字体可能意味着标题,比给定的标签和关键字更清晰。

同样,文本段落较小的字体也很可能是正文。

我不认为这是一个很好的方法,除非你表现得像在用网页浏览器查看页面,而不是仅仅看源代码(因为这就是人们阅读的目的。)然而,使用网页图片然后利用图像处理来提取内容的可行性是完全不现实的)。

希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2011-02-19 17:42:43

很难想出适用于多个站点的权重/规则--在标准css的一致性或使用方面存在一些非常糟糕的站点。最后,我认为最好的组合是:

  1. 使用字体大小
  2. 使用用于标题的常用html标记,如h1、h2等。
  3. 查找title元属性。
  4. 查找文章/标题中常用的css类属性(i. *文章)
  5. 查找页面中文本的位置(通常标题在页面的前1/3处)

使用这些标准的加权组合生成一个分数。作为配置部分,每个站点的权重可能不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5051688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档