专栏首页用户7466307的专栏如何使用PYTHON抓取新闻文章

如何使用PYTHON抓取新闻文章

在本文中,我们将讨论如何使用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 article
article = Article(url)
article.download()
article.parse()
 
# print article text
print(article.text)

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

# get list of image links
article.images
 
# get list of videos - empty in this case
article.movies

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

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

import newspaper
 
site = newspaper.build("https://news.ycombinator.com/")  
 
# get list of article URLs
site.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()

本文分享自微信公众号 - 软件测试test(gh_d29759b02f67)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Selenium WebDriver进行闪存测试

    Flash测试是一种测试类型,用于检查基于Flash的视频,游戏,电影等是否按预期工作。换句话说,测试闪存的功能称为“ 闪存测试”。Flash是Mircomed...

    用户7466307
  • 使用自己的工具进行Java性能测试

    性能测试是批准任何软件产品出厂之前要执行的重要过程。您可能已经听过高级同事的一些恐怖故事,这些故事是关于系统出厂时没有任何性能测试的。因此,现在,这是测试的必要...

    用户7466307
  • 自动化面试题,我用来面试成功了

    测试自动化面试问题的这一部分将涵盖诸如为什么自动化,如何自动化以及自动化测试工具选择的主题。

    用户7466307
  • zblog标签整理

    整理了一些有关zblog的资料,有些来自于zblog官方站,有的是从网络中找到的进行了整理,感觉zblog的帮助和使用,对于不了解代码的朋友有些不方便,所以会逐...

    Tony老师
  • 经典面试题-关联和依赖的区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • CVPR 2020 | 商汤提出SEPC:应对尺度变化的目标检测新算法

    在CVPR 2020上,为了更好的解决物体检测中的尺度问题,商汤EIG算法中台团队重新设计了经典的单阶段检测器的FPN【1】以及HEAD结构,通过构造更具等变性...

    AI算法修炼营
  • 设计模式:策略模式

    今天说一下策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 换句话说策略模式,是指对象有某个行为,但是在不同...

    lpxxn
  • Android 倒计时控件 CountDownView的实例代码详解

    一个精简可自定义的倒计时控件,使用 Canvas.drawArc() 绘制。实现了应用开屏页的圆环扫过的进度条效果。

    砸漏
  • 创建数字货币交易系统开发公司提供安全稳定全球的一站式服务

    数字货币对于新时期的投资者来说非常具有吸引力,一些聪明的投资者知道,虽然数字货币目前不受到银行或政府的监管,但它仍然具有可以阻止人们作弊的过程,所以只要按照规则...

    小威互联说
  • 视频 | 机器之心线上分享:用于序列生成的推敲网络

    机器之心

扫码关注云+社区

领取腾讯云代金券