Python Newspaper模块
大多数人通常对阅读完整Newspaper甚至完整文章不感兴趣。在这种情况下,我们只想了解文章的关键词、标题或者许多较小的内容,这样我们就不必花费太多时间阅读完整的文章。当我们只想阅读选定的文章,但不知道如何选择对我们有用的文章时,这也变得很有用。我们都必须知道什么是网络爬虫以及它是如何工作的。我们还知道网络爬虫有多重要,以及它如何帮助我们从源网站中提取所有有用的信息。我们还可以对Newspaper网站执行此操作,从中获取文章的链接并从该文章中进行信息抓取和整理。我们可以通过使用Python程序来执行所有这些操作,为此任务,Python为我们提供了一个非常有用的模块,即Newspaper模块。我们将在本教程中学习Python的这个Newspaper模块,以及如何使用此模块来执行Newspaper抓取和整理。
Python中的Newspaper模块
Newspaper是Python中的一个模块,基本上是为了从Newspaper文章中整理有用的信息。因此,我们可以使用Python的Newspaper模块通过在Python程序中提供文章的网址来执行提取和整理。我们可以使用Newspaper模块的函数检索文章的所有有用信息,例如标题、关键词等。Python的Newspaper模块使用具有网页抓取功能的高级算法,以便从Newspaper网站中提取所有有用的文本。Newspaper模块在我们日常生活中通常使用的在线Newspaper网站上运行得非常出色。
注意:我们应该注意到Newspaper模块对在线Newspaper网站执行网页抓取过程。因此,如果我们同时从一个网站发起多个请求,可能会导致该网站屏蔽。因此,在实际需要使用时,我们必须相应地使用此模块。
Newspaper模块:安装
Newspaper模块不是Python的内置模块,因此,我们必须首先在系统中安装此模块,然后才能从文章的网址中整理出有用的信息。我们可以从多个来源安装这个Newspaper模块,使用多种方法,但我们建议使用pip安装程序的方法。通过pip安装程序,我们可以使用以下命令在命令提示符终端中非常轻松地安装Newspaper模块:
pip install newspaper3k
一旦我们在设备的终端 shell 中输入以上命令,我们应该按下回车键开始安装过程,然后我们必须等待一段时间完成安装过程。一旦完成此 Newspaper 模块的安装过程,终端 shell 将显示以下安装成功的消息窗口:
我们可以看到,Python的Newspaper模块已成功安装在我们的系统中,现在,我们可以通过将它导入到Python程序中使用Newspaper模块的函数来执行新闻抓取。
Newspaper模块:支持的语言
Python的Newspaper模块支持它,这就是为什么它变得更加流行的原因,因为人们可以从他们选择的语言中抓取新闻文章。 以下语言在Newspaper模块中受支持,它们的输入代码都已经列出:
Sr. No. | Language | Input code for the language |
---|---|---|
1 | Arabic | ar |
2 | Chinese | zh |
3 | Greek | el |
4 | Danish | da |
5 | Italian | it |
6 | German | de |
7 | … and many more | …. |
在程序中创建文章的网页链接的实例时,我们需要提供语言的输入代码。我们在程序中提供的语言代码将帮助Newspaper模块执行并使用其特定的一套算法来从文章中进行抓取和整理。
Newspaper模块:实现
我们已经在系统中安装了Newspaper模块,现在我们都想要执行它的实现,以便我们可以了解这个模块如何工作。Newspaper模块的实现还将帮助我们学习如何从文章中筛选多个关键词和有用信息。但是,在我们将该Newspaper模块用于Python程序之前,我们应该注意首先为文章链接创建一个实例。我们创建的文章实例将使用Newspaper模块的函数从文章中抓取所有信息。因此,首先,我们应该了解文章实例的语法以及其中使用了哪些参数。
创建实例的语法:
在程序中使用以下语法来创建文章的实例:
instanceName = Article(urlOfArticle, language = "language input code according to the article's language")
如上所示的语法中,我们使用了以下两个参数:
- urlOfArticle: 在这里,我们需要提供文章的网址,从这个文章中我们将整理出有用的信息。
- Language: 我们需要提供文章所写语言的输入码。
我们已经学习了创建文章实例的语法,现在我们可以继续实现Newspaper模块的部分。我们将使用以下示例程序来了解如何实现这个Newspaper模块。
NLTK模块: 在进行Newspaper内容提取时,nltk模块也非常重要,我们需要将它与Newspaper模块一起使用才能成功提取文章内容。nltk模块用于对文章链接进行自然语言处理(NLP),如果不进行NLP处理,我们将无法从文章中整理出有用的信息。因此,在使用Newspaper模块的同时,我们还必须使用nltk模块,并在程序中使用download(‘punkt’)函数下载nltk数据。我们还应确保系统中已安装nltk模块,如果系统中尚未安装nltk模块,可以使用以下命令进行安装:
pip install nltk
安装完ntlk模块后,我们可以继续实现Newspaper模块,并将其用作执行Newspaper抓取的示例程序。
示例1: 请看下面的Python程序,我们使用一篇TOI的文章来执行Newspaper模块的Newspaper抓取:
# Import article from the newspaper module
from newspaper import Article
# Import nltk module
import nltk
# Download ntlk data
nltk.download('punkt')
# URL of the TOI's news article
urlOfArticle = "http:// timesofindia.indiatimes.com/world/china/chinese-expert-warns-of-troops-entering-kashmir/articleshow/59516912.cms"
# Creating instance for the article
instanceOfArticle = Article(urlOfArticle, language="en") # en is for English
# Downloading the article piece from the program
instanceOfArticle.download()
# Parsing the article
instanceOfArticle.parse()
# Performing NLP on the article piece
instanceOfArticle.nlp()
# Extracting title of the article
print("Title of the article:", instanceOfArticle.title)
print("n")
# Extracting texts from the article
print("Text from the article:", instanceOfArticle.text)
print("n")
# Extract summary of the article
print("Summary of the article piece:", instanceOfArticle.summary)
print("n")
# Extracting important keywords of the article
print("Important Keywords of the article:", instanceOfArticle.keywords)
print("n")
print ("We have successfully performed scrapping from the piece of article's link given in the code!")
输出:
我们已经成功地从代码中给出的文章链接上进行了抓取!
解释:
我们首先在程序中导入了newspaper模块和nltk模块,这样我们就可以使用这两个模块的函数来进行新闻抓取。然后,我们在URL变量中给出了一篇文章的链接(TOI的最新文章)。接下来,我们使用article()函数对文章的实例进行了初始化,并将初始化的URL作为参数传递给它。同时,我们在article()函数中使用URL变量提供了语言输入代码。然后,我们使用download()函数将文章下载到程序中,然后使用parse()函数解析文章。然后,我们使用nlp()函数在解析的文章片段上进行自然语言处理(NLP)。现在,在对解析的文章执行了NLP之后,我们能够从文章中打印出有用的信息。因此,我们首先使用“.title”函数打印文章的标题,然后使用“.text”函数打印文章的文本。接下来,我们使用“.summary”函数打印文章的摘要,然后使用“.keywords”函数打印出文章的重要关键词。
注意:我们应该注意到,TOI会不时地删除一些文章,因此,示例中给出的TOI的文章链接可能在将来无法使用。因此,在使用这个示例时,我们必须使用另一篇文章的新链接。
newspaper模块:一些有用的函数
当我们使用newspaper模块从文章链接中进行抓取时,我们使用了一些重要的函数来成功完成这个任务。这些函数对于进行新闻抓取和整理以及在输出中打印重要信息非常有用。在这里,我们将学习有关newspaper模块的这些重要函数,它们如下:
序号 | 函数名称 | 函数的工作 |
---|---|---|
1 | article() | 首先,我们需要创建一个文章实例,以从示例中给定的文章链接中获取任何有用的信息,并且我们可以使用article()函数来创建一个实例。 |
2 | download() | 借助download()函数,我们可以下载我们在程序中提供的文章的URL。 |
3 | parse() | 在下载文章之后,我们需要解析文章,我们可以使用parse()函数来实现这一点。 |
4 | nlp() | 在从文章中提取有用的信息之前,我们还需要对解析的文章进行自然语言处理,我们可以使用nlp()函数来实现这一点。 |
5 | instanceName.title | 它用于打印文章的标题。 |
6 | instanceName.text | 如果我们想要打印文章的文本,我们可以使用这个函数。 |
7 | instanceName.keywords | 这个函数非常有用,因为它打印出文章中的所有重要关键词。 |
8 | instanceName.summary | 如果我们想要打印文章的摘要,我们可以使用这个函数。 |
这些是Newspaper模块的所有重要功能,我们可以根据自己的选择使用它们来获取我们想要的文章信息(如关键词、标题等)。
结论
我们不可能读完整个Newspaper,因此,我们只想从文章中获取有用的信息。Newspaper模块提供了一种选项,通过在文章上进行Newspaper抓取,我们可以只获取文章的有用信息。我们可以在Python程序中使用Newspaper模块的函数执行Newspaper抓取,并将文章链接中的所有有用信息打印到输出中。