首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Newspaper3k中处理可靠输出

在Newspaper3k中处理可靠输出
EN

Stack Overflow用户
提问于 2019-02-23 03:21:45
回答 1查看 310关注 0票数 0

当前行为:

在尝试使用News-aggregator package Newspaper3k时,我无法产生一致/可靠的输出。

系统/环境设置:

代码语言:javascript
复制
Windows 10
Miniconda3 4.5.12
Python 3.7.1
Newspaper3k 0.2.8

复制步骤(代码):

代码语言:javascript
复制
import newspaper

cnn_paper = newspaper.build('http://cnn.com')
print(cnn_paper.size())

预期行为/输出(根据cnn上发布的当前链接而有所不同):

在连续的打印输出运行时,在cnn上生成一致数量的已发布链接。

实际行为/输出

第一次运行代码时产生的链接数与之后立即运行的代码的链接数不同。

代码语言:javascript
复制
1st Run Print output: 94 (as of time of posting this question)
2nd Run Print output: 0 
3rd Run Print output: 18
4th Run Print output: 7

打印实际链接的方式与上面的链接计数打印相同。我试着使用了许多不同的新闻来源,得到了同样意想不到的差异结果。我需要更改我的User-Agent头吗?这是一个检测问题吗?如何产生可靠的结果?

任何帮助都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 04:20:41

通过更好地理解6.1.3 Article caching in the user documentation标题下的默认缓存,我的问题得到了解决。

除了我普遍的无知之外,我的困惑来自于read the docs 'Documentation' listed the caching function as a TODO as can be seen here

经过更仔细的研究,我发现:

默认情况下,报纸缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能的存在是为了防止重复文章和提高提取速度。

Cbs_paper.size()的返回值从1030更改为2,因为当我们第一次爬行cbs时,我们找到了1030篇文章。然而,在我们的第二次抓取时,我们删除了所有已经抓取的文章。这意味着自从我们第一次摘录以来,已经发表了两篇新的文章。

对于memoize_articlesparameter,您可以选择不使用此功能。您还可以传入较低级别的“Config”对象,如高级部分所述。

代码语言:javascript
复制
>>>import newspaper
>>>cbs_paper = newspaper.build('http://cbs.com', memoize_articles=False)
>>>cbs_paper.size()1030
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54833797

复制
相关文章

相似问题

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