商务服务
python新闻内容爬虫专用包newspaper详细教程
2024-12-29 17:07

作者 | CDA数据分析师

​ Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为使用它不需要考虑header、IP代理,也不需要考虑网页解析,网页源代码架构等问题。这个是它的优点,但也是它的缺点,不考虑这些会导致它访问网页时会有被直接拒绝的可能。

​ 总得来说,Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。

newspaper的功能

  • 多线程文章下载框架
  • 新闻网址识别
  • 从html中提取文本
  • 从html中提取顶部图像
  • 从html中提取所有图像
  • 从文本中提取关键字
  • 从文本中提取摘要
  • 从文本中提取作者
  • Google趋势术语提取。
  • 使用10种以上语言(英语,中文,德语,阿拉伯语…

​ newspaper包并不是默认已安装的模块库,因此在第一次使用newspaper库前,需要先安装好newspaper库,通常可以说通过快捷键win+R,输入cmd,回车打开命令窗口,输入

 

​ 进行安装,需要注意的是:需要安装的是newspaper3k而不是newspaper,因为newspaper是python 2的安装包,pip install newspaper 无法正常安装,请用python 3对应的 pip install newspaper3k正确安装。

2.1 单条新闻爬取示例

​ 爬取单条新闻用到的是newspaper中的Article包,爬取指定网页的新闻内容,也就是当你想爬取某一篇新闻的内容,那么需要先获取它的网址,然后再以这个单一的网址作为目标来爬取内容。

​ 下面以2019年12月6日南方网的一篇新闻《最短10分钟 广州南站直达市中心》作为例子进行说明。首先需要设定新闻的网址,然后使用Article函数,第一个参数是网址,第二个常用参数是语言language,中文是以字符串**‘ch’**表示。然后在用download函数和parse函数对新闻进行加载已经解析,这两步执行完之后结果新闻所有内容就已经加载出来了,剩下来就是从中使用函数分解出自己需要的内容了。

 

结果

 

​ 除了常用到的正文和题目外,还可以获取新闻的作者、发布时间、摘要、关键词、图片链接、视频链接等等,但是并不能100%识别,很多新闻的作者,关键词和文章摘要都无法识别出来,发布时间,图片、视频链接就基本能识别出来。

​ 如果文章没有指明使用的什么语言的时候,newspaper会尝试自动识别。世界上各国语言何其之多,newspaper也不能100%完美支持各种语言的,不过目前newspaper可以支持35种语言,基本上可以说能够覆盖时间上绝大多数国家和地区的新闻了。

​ 通过newspaper.languages(),可以查看newspaper库支持的语言及其对应参数输入

 

2.2 同网站下多条新闻爬取

​ 单条新闻爬取的效率太低了,而且需要先行找到新闻的详细网址才可以爬取其中内容,如果是需要爬取某个网站或者多个网站的大量新闻,这样使用明显是不够的。newspaper可以通过构建新闻源,把整个新闻网站的所有新闻包含进来,然后再通过这个新闻源对新闻网站进行索引和爬取。以下以南方网为例,详细解读该如何使用newspaper库爬取多条新闻。

1、先构建新闻源

 

2、文章缓存

​ 默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能用于防止重复的文章和提高提取速度。

 

​ 相隔一段时间后重新构建同一网站的新闻源,再查看新闻链接,发现只有18个了,说明在这一段时间内,新增/更新了18条新闻。如果不需要使用这个功能,可以使用memoize_articles参数选择退出此功能。

 

3、提取源类别

​ 通过category_urls()可提取出源网站下所有的其他新闻网站链接,可以通过取出来的网站链接,建立更多的新闻源,从而获取跟多的新闻。

 

结果

 

4、提取源新闻网站的品牌和描述

​ 构建新闻源之后,可以直接查看其品牌名称和新闻网站的介绍。

 
 

5、查看新闻链接

​ 构建新闻源之后,还可以查看整个新闻源下的所有新闻链接及其数量,通过for循环,可以一一列出所有对应的新闻网页。这个与第三小点中的源类别不一样,源类别中提前的是新闻网站的主网页,每个主网页下有非常多新闻链接,而新闻链接是新闻源内的每一篇新闻报道的实际网址。

 

输出结果

 

​ 有一点需要注意的是,这1838条新闻链接中并不是全部链接都是对应着一篇新闻报道,有一些是只是新闻网站的子节点,子节点类似于一个新闻分类,里面装载这其他新闻的链接,它可能只有一个标题,没有新闻正文之类的内容。例如新闻链接中的第一、第二条链接,其网址也和下面几条新闻报道的网址有着较明显的区别,第一条链接对应的是《南方融媒体专区》,在newspaper里能通过.title()函数取出它的名字,但因为它没有新闻正文,所以用.text()取出的会是空字符串。

6、提取单篇文章

​ 既然newspaper库能够提取新闻源里的每篇新闻报道的网址链接,那么必然能够根据这个来爬取新闻的内容,下面我们以新闻链接中的第四条链接为例,提取其中的一篇新闻报道——《创新的佛山呼唤一条创新街》。

 

输出结果

 

7、提取新闻源下所有新闻内容

​ 通过for循环,可以将新闻报道一篇一篇的进行加载并解析,将其内容爬取出来,因为newspaper库是属于比较简单粗暴的访问网页进行爬取,出现拒绝访问的可能性还是很大的,所以还必须得使用try试错。

 

输出结果(部分

​ 从结果来看,newspaper此次的爬取还是非常成功的,没有出现404被拒绝访问的情况,顺利的把所有新闻报道都爬取下来了。

    以上就是本篇文章【python新闻内容爬虫专用包newspaper详细教程】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/30683.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
vivo怎么恢复出厂设置vivo手机怎么恢复出厂设置「vivo怎么恢复出厂设置」
vivo怎么恢复出厂设置  进入recovery模式之后进行双清,不管你的手机是系统自带的recovery还是第三方的recovery,不管你是中文
在华为授权店买华为手机到手却是鼎桥手机,消费者怀疑买到山寨机山寨手机「在华为授权店买华为手机到手却是鼎桥手机,消费者怀疑买到山寨机」
大家好,我是悠哉悠哉平泽唯。最近福州的谢女士在一家华为授权体验店,花了3999元买了一部手机。包装袋,赠品雨伞,手机壳都印着
LG彻底把自己玩没了:盘点那些年它出过的各种奇怪手机LG手机「LG彻底把自己玩没了:盘点那些年它出过的各种奇怪手机」
最近有条新闻,说 LG 已经几乎退出手机市场了。托尼看了眼数据,发现 LG 的日子确实过得不好,就连本来份额较高的美国市场,在去
华为畅享70X手机发布:一键北斗引领中端市场新风潮华为最新款手机「华为畅享70X手机发布:一键北斗引领中端市场新风潮」
在2024年12月30日,华为正式宣布将于2025年1月3日推出其最新的中端手机——华为畅享70X。该款手机凭借其宣传口号“一键北斗,鸿
一些实惠的桌面手机支架手机支架「一些实惠的桌面手机支架」
一些买过的便宜,做工不太满意的,直接扔,或送人,或退货,留下的都是价格不过40元的实惠实用款,基本达到物有所值,甚至物超所
【失信曝光台】失信金额高达200万元!新一期失信人员曝光
为维护生效法律文书的严肃性,切实保护申请执行人的合法权益,本院依法对拒不履行生效法律文书确定义务的被执行人进行公开曝光,
vivo游戏中心怎样看自己的关注的游戏?手机游戏中心「vivo游戏中心怎样看自己的关注的游戏?」
vivo游戏中心又叫做GameCenter,是专门为vivo手机打造的游戏中心平台,玩家们可以在这儿去找到更多的游戏应用,不用去各大游戏的
Magic UI 3.1系统体验:除了流畅这些功能不得不说手机系统流畅度「Magic UI 3.1系统体验:除了流畅这些功能不得不说」
很对朋友买都只关注硬件,认为硬件性能足够了手机就可以足够流畅。但实际上这种观点并不完全准确,硬件性能固然是必不可少的一部
“年经济”日渐升温 “买买买”点燃消费热“引擎”
临近春节,作为山东人必备的传统面食,花样大馒头迎来热销。在青岛,商家线上线下齐发力,备足货源应对节前销售旺季。在青岛市崂
听长乐 | 400多年前,长乐籍册封使在梅花开启了一场“奇幻漂流”
时间周一到周五周六、周日06:00-06:30《养生课堂》音乐无人驾驶06:30-07:00转播央广《新闻和报纸摘要》转播央广《新闻和报纸摘要