网页抓取 - 如何识别网页的主要内容

66 投票
10 回答
28337 浏览
提问于 2025-04-16 09:51

假设你有一个新闻文章的网页(比如来自《纽约时报》或彭博社这样的主要新闻来源),你想要找出网页上主要的文章内容,把其他的杂七杂八的东西扔掉,比如广告、菜单、侧边栏和用户评论。

有没有一种通用的方法可以在大多数主要新闻网站上做到这一点呢?

还有哪些好的工具或库可以用来挖掘数据?(最好是基于Python的)

10 个回答

14

之前我写了一个简单的Python脚本,专门用来处理这个任务。这个脚本通过一种简单的方法,把网页上的文本块根据它们在网页结构中的深度进行分组。然后,它会找出文本最多的那一组,认为这就是主要内容。虽然不是完美的,但对于新闻网站来说效果还不错,因为文章通常是网页上最大的文本块,尽管可能被分成多个div或p标签。

你可以这样使用这个脚本:python webarticle2text.py <url>

34

有很多方法可以做到这一点,但没有一种方法是万无一失的。这里有两种最简单的方法:

  • 如果你要处理的网站是固定的、有限的:在你的爬虫程序中,把每个网址从普通网址转换成特定网站的打印网址(这个方法不能在不同网站之间通用)。
  • 使用arc90可读性算法(参考实现是用javascript写的) http://code.google.com/p/arc90labs-readability/。这个算法的简单版本是,它会寻找包含

    标签的

    元素。虽然这个方法在某些网站上可能不太有效,但总体来说效果还是不错的。
14

没有一种方法可以保证一定有效,但你可以尝试一种策略,就是找出里面文本最明显的那个元素。

撰写回答