手把手教你下载38种语言新闻文章的-Newspaper

手把手教你下载38种语言新闻文章的-Newspaper

Newspaper 是一个很棒的python库,用于提取和整理文章。

它有以下的优点:

多线程文章下载框架

识别新闻网址

从html提取文本

从html提取顶部图像

从html提取所有图像

从文本中提取关键字

自动提取摘要

自动提取作者

自动提取 Google 趋势词

下面是这个开源模块的安装和使用教程。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

请选择以下任一种方式输入命令安装依赖: 1. Windows 环境 打开 Cmd (开始-运行-CMD)。 2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。 3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip3 install newspaper3k

遇到任何安装问题,都可以在本文下方留言框

很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!QQ群:705933274

2.基本使用

Newspaper 中是以文章为对象实现各种操作的,比如下载指定新闻的HTML:

from newspaper import Article

url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'

# 根据url生成Article对象

article = Article(url)

# 下载文章

article.download()

# 文章的HTML

article.html

#'

Python 之眼

"""

# 解析文章

article.parse()

# 获取文章作者

article.authors

# ['Leigh Ann Caldwell', 'John Honway']

# 获取文章发布日期

article.publish_date

# datetime.datetime(2013, 12, 30, 0, 0)

# 获取文章文本

article.text

# 'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'

# 获取顶部图像

article.top_image

# 'http://someCDN.com/blah/blah/blah/file.png'

# 获取文章多媒体资源

article.movies

# ['http://youtube.com/path/to/link.com', ...]

除此之外,该模块还附带了 NLP 功能,你能用它来识别文章关键字并自动提取摘要:

# 使用 NLP 解析

article.nlp()

# 获取文章关键词

article.keywords

# ['New Years', 'resolution', ...]

# 获取文章摘要

article.summary

# 'The study shows that 93% of people ...'

你看,这个工具不无敌吗?它还能提取某个网站的所有新闻文章,比如我想提取CNN的新闻文章:

import newspaper

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

for article in cnn_paper.articles:

print(article.url)

# http://www.cnn.com/2013/11/27/justice/tucson-arizona-captive-girls/

# http://www.cnn.com/2013/12/11/us/texas-teen-dwi-wreck/index.html

在此之上,你还能拿到CNN的其他新闻门户分类:

for category in cnn_paper.category_urls():

print(category)

# http://lifestyle.cnn.com

# http://cnn.com/world

# http://tech.cnn.com

# ...

相关推荐