问题描述
当我这样做
import newspaper
paper = newspaper.build('http://cnn.com',memoize_articles=False)
print(len(paper.articles))
我看到报纸从http://cnn.com找到了902篇文章,这对我来说似乎太少了,因为他们每天都会发表许多文章,并且已经在线发表了很多年。这些真的是http://cnn.com上的所有文章吗?如果没有,我是否还能找到其他文章的URL?
解决方法
报纸仅查询CNN主页上的项目,因此该模块不会查询域中的所有类别(例如业务,健康状况等)。根据我的代码,到目前为止,报纸仅发现698条独特的文章。其中一些文章可能是相同的,因为某些URL带有散列,但看起来是同一篇文章。
P.S。您可以查询所有类别,但需要 Selenium 和 Newspaper 。
from newspaper import build
articles = []
urls_set = set()
cnn_articles = build('http://cnn.com',memoize_articles=False)
for article in cnn_articles.articles:
# check to see if the article url is not within the urls_set
if article.url not in urls_set:
# add the unique article url to the set
urls_set.add(article.url)
articles.append(article.url)
print(len(articles))
# 698