0

我正在使用 Goose 从各种 URL 中提取标题和正文。它适用于大多数 URL,除了一个特定的荷兰新闻网站。知道这里出了什么问题吗?

具体有问题的网址在这里。

我的代码:

g = Goose()
content_url = g.extract(url=url)
allcontent = content_url.cleaned_text
print allcontent

我期待整个文本,但奇怪的是,我只是随机从文章中得到以下段落。

Toerisme was een groot goed toen het een voorrecht was van de elite. Maar nu de massa in het voetspoor treedt van Floortje Dessing gaat het van kwaad tot erger. Het verplaatsen van mensen per cruiseboot of jumbojet is milieubelastend. Toeristen die de bloemetjes buiten zetten, veroorzaken geluidsoverlast in de kleine uurtjes. Toeristenplaatsen veranderen buiten het seizoen in spookoorden. En een bezoek aan de yakherders in Mongolië is een stuk minder interessant als blijkt dat de buren er twee maanden eerder ook waren geweest.
4

1 回答 1

1

问题有两个原因:

  1. Goose 计算 html 元素的“主要内容”的方式,特别是它尝试查找文本块然后在 html 树中向上移动并更新每个封闭元素的分数。作为输出,您会收到基于内部评分的最有价值的元素。

  2. 您的网页结构。如果您检查 html,您会看到文章文本被放置在几个不同的 html 块中,因此 Goose 正在选择其中之一。

解决方案取决于,如果您的目标是解析这个单一站点,您最好使用诸如 beautiful soup、lxml、grab 等模块来单独解析文本块并将它们合并在一起。如果您有数百万个网站要抓取,只需接受 goose 为您提供的开箱即用功能。

于 2017-08-11T13:22:27.663 回答