首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从newspaper3k对象中删除不需要的类和标记?

如何从newspaper3k对象中删除不需要的类和标记?
EN

Stack Overflow用户
提问于 2020-06-17 08:24:31
回答 1查看 463关注 0票数 1

我想提取新闻文章的内容,目前我正在使用newspaper3k库:

代码语言:javascript
运行
复制
a = Article(url, memoize_articles=False, language='en')
a.download()
a.parse()
content = a.text

但是对于一些网站来说,有一些不想要的元素,比如广告和图片中的文字。所以我想删除那些不需要的元素和文本。有没有办法从这些标签和类中删除所有内容?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-23 17:13:15

如果你想为一个特定的网站这样做,你可以使用a.top_node,找到广告的XPath或CSS选择器,然后删除它们。

代码语言:javascript
运行
复制
ads = a.top_node.xpath("./foo")  # find a proper selector
for ad in ads:
    ad.getparent().remove(ad)

# and now conver top_node to text again somehow, probably using
# OutputFormatter

请参阅https://github.com/codelucas/newspaper/blob/56de65af9efbfea6293c82c0b1821e2ca9fbddaa/newspaper/article.py#L281

还可以实现自定义DocumentCleaner并将此逻辑放在那里。

一般来说,这是一个很难的问题,可能是文章抽取中最难的一个问题,如果你想以一种通用和健壮的方式进行,而不为每个网站编写和维护规则的话。开源库通常可以找到质量合理的主要内容,但它们很难从文章正文中排除额外的内容。参见https://github.com/scrapinghub/article-extraction-benchmarkhttps://github.com/scrapinghub/article-extraction-benchmark/releases/download/v1.0.0/paper-v1.0.0.pdf报告。

像Scrapinghub的AutoExtract这样的商业工具(我在那里工作)解决了这个问题;它们使用计算机视觉和机器学习,否则很难可靠地解决这个问题。

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

https://stackoverflow.com/questions/62424600

复制
相关文章

相似问题

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