如何使用PYTHON抓取新闻文章

共 2200字,需浏览 5分钟

 ·

2020-09-12 09:41

r

在本文中,我们将讨论如何使用Python抓取新闻报道。这可以使用方便的报纸包装来完成

Python newspaper 包简介

可以使用pip安装newspaper 包:

pip install newspaper

安装完成后,即可开始。 newspaper可以通过从给定的URL上抓取一篇文章,或者通过找到网页上其他新闻的链接来工作。让我们从处理一篇文章开始。首先,我们需要导入Article类。接下来,我们使用此类将内容从URL下载到我们的新闻文章。然后,我们使用parse方法解析HTML。最后,我们可以使用.text打印文章的文本

爬一篇文章


from newspaper import Article url = "https://www.bloomberg.com/news/articles/2020-08-01/apple-buys-startup-to-turn-iphones-into-payment-terminals?srnd=premium" # download and parse articlearticle = Article(url)article.download()article.parse() # print article textprint(article.text)

还可以获取有关文章的其他信息,例如指向帖子中嵌入的图像或视频的链接。

# get list of image linksarticle.images # get list of videos - empty in this casearticle.movies

下载网页上链接的所有文章

现在,让我们看看如何将所有新闻文章链接到网页上。我们将使用如下的news.build方法来实现然后,我们可以使用article_urls方法提取文章URL 

import newspaper site = newspaper.build("https://news.ycombinator.com/")   # get list of article URLssite.article_urls()

使用上面的对象,我们还可以获得每个文章的内容。这里,所有article对象都存储在list.site.articles中例如,让我们获取第一篇文章的内容。

site_article = site.articles[0] site_article.download()site_article.parse() print(site_article.text)

现在,让我们修改代码以获得前十名文章:

top_articles = []for index in range(10):    article = site.articles[index]    article.download()    article.parse()    top_articles.append(article)

警告!

使用时,一个重要的说明newspaper的是,如果你运行newspaper.build用相同的URL多次,
包将缓存,然后删除已经刮了文章。例如,在下面的代码中,我们连续两次运行Newspaper.build并获得不同的结果。第二次运行它时,代码仅返回新添加的链接。

site = newspaper.build("https://news.ycombinator.com/")     print(len(site.articles)) site = newspaper.build("https://news.ycombinator.com/")     print(len(site.articles))

可以通过在函数调用中添加一个额外的参数来进行调整,如下所示:

site = newspaper.build("https://news.ycombinator.com/", memoize_articles=False)

如何获得文章摘要

newspaper包也支持一些NLP功能。您可以通过调用nlp方法进行检查。

article = top_articles[3] article.nlp()

现在,让我们使用summary方法。这将尝试返回文章摘要。

article.summary()

您还可以从文章中获取关键字列表。

article.keywords

如何获得最热门的Google关键字

报纸还有其他一些很酷的功能。例如,我们可以使用hot方法轻松使用它在Google上吸引最热门的搜索

newspaper.hot()

该软件包还可以返回受欢迎的URL列表,如下所示。

newspaper.popular_urls()


推荐阅读



送书


浏览 65
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报