京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者 | CDA数据分析师
Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为使用它不需要考虑header、IP代理,也不需要考虑网页解析,网页源代码架构等问题。这个是它的优点,但也是它的缺点,不考虑这些会导致它访问网页时会有被直接拒绝的可能。
总得来说,Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。
newspaper的功能
newspaper包并不是默认已安装的模块库,因此在第一次使用newspaper库前,需要先安装好newspaper库,通常可以说通过快捷键win+R,输入cmd,回车打开命令窗口,输入
pip install newspaper3k
进行安装,需要注意的是:需要安装的是newspaper3k而不是newspaper,因为newspaper是python 2的安装包,pip install newspaper 无法正常安装,请用python 3对应的 pip install newspaper3k正确安装。
爬取单条新闻用到的是newspaper中的Article包,爬取指定网页的新闻内容,也就是当你想爬取某一篇新闻的内容,那么需要先获取它的网址,然后再以这个单一的网址作为目标来爬取内容。
下面以2019年12月6日南方网的一篇新闻《最短10分钟 广州南站直达市中心》作为例子进行说明。首先需要设定新闻的网址,然后使用Article函数,第一个参数是网址,第二个常用参数是语言language,中文是以字符串'ch'表示。然后在用download函数和parse函数对新闻进行加载已经解析,这两步执行完之后结果新闻所有内容就已经加载出来了,剩下来就是从中使用函数分解出自己需要的内容了。
## 用Article爬取单条新闻
from newspaper import Article
# 目标新闻网址
url = 'http://news.southcn.com/gd/content/2019-12/06/content_189723331.htm'
news = Article(url, language='zh')
news.download() # 加载网页
news.parse() # 解析网页
print('题目:',news.title) # 新闻题目
print('正文:\n',news.text) # 正文内容
print(news.authors) # 新闻作者
print(news.keywords) # 新闻关键词
print(news.summary) # 新闻摘要
# print(news.top_image) # 配图地址
# print(news.movies) # 视频地址
# print(news.publish_date) # 发布日期
# print(news.html) # 网页源代码
结果:
题目: 最短10分钟 广州南站直达市中心
正文: 专家建议应在核心区内贯彻站城一体的建设理念,保障多层级地下空间的连续,对人流进行分层管理,明确南站要建以轨道交通为衔接的立体枢纽。 南方网讯 5日,《广州南站周边地区控制性详细规划深化》在广州市规委会会议上获得通过。该规划针对广州南站启用近10年来面临的问题进行全面梳理。规划提出,要在36平方公里的规划范围内,形成7大组团协同发展,打造高350米的站前地标建筑,对12条旧村将进行全面改造。 规委会上,南站内外交通优化问题最受关注。专家建议应在核心区内贯彻站城一体的建设理念,保障多层级地下空间的连续,对人流进行分层管理,明确南站要建以轨道交通为衔接的立体枢纽。 为此,本轮规划在南站地区规划了9条轨道交通,规划轨道线路总长38.2公里,共设站点16座,轨道站点覆盖率达37.8%,核心区轨道交通站点覆盖率达100%。9条轨道交通分别是:3条城际轨道——广珠城际:广州南站—珠海;广佛环城际:广州南站—金融城—白云机场—佛山西站—广州南站;佛莞城际:佛山—广州南站—莞城。4条地铁——2号线:嘉禾望岗—广州南站;7号线:佛山北滘新城—广州南站—萝岗;22号线:南沙客运港—广州南站—白鹅潭—白云机场;佛山2号线:佛山西站—广州南站。2条有轨电车——南海新交通:广州南站—南海金融高新区;N2线:广州南站—大夫山—市桥—莲花山。 此外,规划提出要构建4条南站与广州中心城区快速连接的直达干道,只需10—20分钟就能从南站直达市中心。 南方日报记者 刘怀宇 通讯员 穗规资宣 [] []
除了常用到的正文和题目外,还可以获取新闻的作者、发布时间、摘要、关键词、图片链接、视频链接等等,但是并不能100%识别,很多新闻的作者,关键词和文章摘要都无法识别出来,发布时间,图片、视频链接就基本能识别出来。
如果文章没有指明使用的什么语言的时候,newspaper会尝试自动识别。世界上各国语言何其之多,newspaper也不能100%完美支持各种语言的,不过目前newspaper可以支持35种语言,基本上可以说能够覆盖时间上绝大多数国家和地区的新闻了。
通过newspaper.languages(),可以查看newspaper库支持的语言及其对应参数输入
>>> import newspaper >>> newspaper.languages() # 查看newspaper库支持的语言及其对应参数输入 Your available languages are: input code full name ar Arabic be Belarusian bg Bulgarian da Danish de German el Greek en English es Spanish et Estonian fa Persian fi Finnish fr French he Hebrew hi Hindi hr Croatian hu Hungarian id Indonesian it Italian ja Japanese ko Korean mk Macedonian nb Norwegian (Bokmål) nl Dutch no Norwegian pl Polish pt Portuguese ro Romanian ru Russian sl Slovenian sr Serbian sv Swedish sw Swahili tr Turkish uk Ukrainian vi Vietnamese zh Chinese
单条新闻爬取的效率太低了,而且需要先行找到新闻的详细网址才可以爬取其中内容,如果是需要爬取某个网站或者多个网站的大量新闻,这样使用明显是不够的。newspaper可以通过构建新闻源,把整个新闻网站的所有新闻包含进来,然后再通过这个新闻源对新闻网站进行索引和爬取。以下以南方网为例,详细解读该如何使用newspaper库爬取多条新闻。
import newspaper url = 'http://www.southcn.com/' # 南方网 south_paper = newspaper.build(url, language='zh') # 构建新闻源
默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能用于防止重复的文章和提高提取速度。
>>> south_paper.size() # 查看有多少链接 1838 >>> ## 在默认文章缓存的情况下过一段时间后再次 >>> url = 'http://www.southcn.com/' # 南方网 >>> new_south_paper = newspaper.build(url, language='zh') # 构建新的新闻源 >>> new_south_paper.size() 18
相隔一段时间后重新构建同一网站的新闻源,再查看新闻链接,发现只有18个了,说明在这一段时间内,新增/更新了18条新闻。如果不需要使用这个功能,可以使用memoize_articles参数选择退出此功能。
south_paper = newspaper.build(url,language='zh',memoize_articles = False) # 构建新闻源
通过category_urls()可提取出源网站下所有的其他新闻网站链接,可以通过取出来的网站链接,建立更多的新闻源,从而获取跟多的新闻。
# 提取源类别
for category in south_paper.category_urls():
print(category)
结果:
http://www.southcn.com/ http://pc.nfapp.southcn.com http://culture.southcn.com http://theory.southcn.com http://creditgd.southcn.com ......
构建新闻源之后,可以直接查看其品牌名称和新闻网站的介绍。
# 提取源新闻网站的品牌和描述
print('品牌:',south_paper.brand) # 品牌
print('描述:',south_paper.description) # 描述
品牌: southcn
描述: 南方网/南方新闻网是经中共广东省委,广东省人民政府批准建设的新闻宣传网站。南方网/南方新闻网由广东省委宣传部主办主管并作为南方报业传媒集团之成员单位,获国务院新闻办公室批准从事登载新闻业务并被确定为全国重点新闻网站之一。南方网/南方新闻网作为华南地区最大型的新闻融合平台,是国内外网民认识、了解广东最权威、最快捷的途径。
构建新闻源之后,还可以查看整个新闻源下的所有新闻链接及其数量,通过for循环,可以一一列出所有对应的新闻网页。这个与第三小点中的源类别不一样,源类别中提前的是新闻网站的主网页,每个主网页下有非常多新闻链接,而新闻链接是新闻源内的每一篇新闻报道的实际网址。
# 查看新闻源下面的所有新闻链接
for article in south_paper.articles:
print(article.url)
len(south_paper.articles) # 查看新闻链接的数量,与south_paper.size()一致
输出结果:
http://www.southcn.com/pc2018/nfrmt/node_384365.htm http://www.southcn.com/pc2018/xczx/node_384360.htm http://tech.southcn.com/t/2019-12/09/content_189747678.htm http://tech.southcn.com/t/2019-12/09/content_189747668.htm http://tech.southcn.com/t/2019-12/09/content_189747657.htm ... 1838
有一点需要注意的是,这1838条新闻链接中并不是全部链接都是对应着一篇新闻报道,有一些是只是新闻网站的子节点,子节点类似于一个新闻分类,里面装载这其他新闻的链接,它可能只有一个标题,没有新闻正文之类的内容。
例如新闻链接中的第一、第二条链接,其网址也和下面几条新闻报道的网址有着较明显的区别,第一条链接对应的是《》,在newspaper里能通过.title()函数取出它的名字,但因为它没有新闻正文,所以用.text()取出的会是空字符串。
既然newspaper库能够提取新闻源里的每篇新闻报道的网址链接,那么必然能够根据这个来爬取新闻的内容,下面我们以新闻链接中的第四条链接为例,提取其中的一篇新闻报道——《创新的佛山呼唤一条创新街》。
# 提前其中一篇文章
one_article = south_paper.articles[3] # 选择第四条新闻链接
one_article.download() # 下载网页
one_article.parse() # 解析网页
print("标题:",one_article.title)
print("正文:",one_article.text)
输出结果:
标题: 创新的佛山呼唤一条创新街 正文: 钱塘江畔的杭州高新区,仅一公里长的物联网街集聚了海康威视、吉利汽车等数十家高科技企业的总部及研发部门。人才、技术、资金等创新要素在这个街区汇集。 钱塘江畔的杭州高新区,仅一公里长的物联网街集聚了海康威视、吉利汽车等数十家高科技企业的总部及研发部门。人才、技术、资金等创新要素在这个街区汇集。 “创新街区”这一集生活与创新于一体,高端研发机构、企业集群、孵化器汇集的城市经济空间,正以其物理空间的紧凑性、交通的通达性、技术的网络互动性等优势,逐步走进大众视野。 近年来,创新街区在全球得到蓬勃发展。在国外,纽约硅巷、剑桥肯戴尔广场等街区成为科技型中小企业集聚地的典型样本;在国内,北京中关村、深圳华强北等同样是创新创业资源最为密集的特色街区。 一定程度上说,创新街区是介乎创新龙头企业与高新园区的中间态,是创新集聚从“点”到“面”的龙门一跃。 杭州物联网街是一个典型案例。作为杭州高新区的主导产业,物联网产业的核心技术集聚正是从这条街起步。随着海康威视、大华股份等一批龙头企业率先迁入,一批产业链上下游企业迅速涌入物联网街,行业先进技术与高端人才逐步聚集。 当产业集聚发展到一定水平,街区的城市化建设也随之加速。当地不少企业员工表示,5年前物联网街两旁还是一片空地。如今,物联网街的发展已高度现代化,学校、医院、商场等生活配套十分齐全。 而另一个制造业中心佛山,拥有美的、格兰仕等一批创新龙头企业,三龙湾、佛山高新区等重大创新平台也正在稳步崛起,不缺创新的“点”与“面”。然而,具有一定影响力的高水平创新街区在佛山却暂时未能涌现。 早在2013年,佛山高新区就提出要打造科技一条街,探索金融和科技产业的创新融合,用10余个科技创新载体的密集建设,为佛高区打造科创新城积蓄力量。同在2013年,佛山提出要打造民间金融街,为产业发展提供金融支撑。如今,这些创新街区的雏形已现,但对标国际国内一流水平,其辐射力与集聚力仍有待提高。 一个创新街区的形成离不开政府、企业与人才三大主体。一个成熟的创新街区往往能让创新创业企业获得更多知识溢出,让高端人才获得更好的生活体验,让地方政府从中获取更多综合效益。 佛山在这一领域不缺资源、不缺平台,更不缺希望和未来。借鉴杭州物联网街的发展经验,佛山可通过强化规划引领突出产业功能分区,形成主业突出、分工协作、科学有序的平台格局。同时,用好用活政策工具,鼓励龙头企业发挥创新带动作用,引导上下游全产业链创新要素形成集聚。更重要的是,佛山可立足产业基础发挥优势,加速推进“城产人”融合发展,完善高端人才工作生活的配套。依托这一系列有力有效的作为,我们期待,在创新的佛山找到全新的创新街区。
通过for循环,可以将新闻报道一篇一篇的进行加载并解析,将其内容爬取出来,因为newspaper库是属于比较简单粗暴的访问网页进行爬取,出现拒绝访问的可能性还是很大的,所以还必须得使用try试错。
import pandas as pd # 导入pandas库
news_title = []
news_text = []
news = south_paper.articles
for i in range(len(news)): # 以新闻链接的长度为循环次数
paper = news[i]
try :
paper.download()
paper.parse()
news_title.append(paper.title) # 将新闻题目以列表形式逐一储存
news_text.append(paper.text) # 将新闻正文以列表形式逐一储存
except:
news_title.append('NULL') # 如果无法访问,以NULL替代
news_text.append('NULL')
continue
# 建立数据表存储爬取的新闻信息 south_paper_data = pd.DataFrame({'title':news_title,'text':news_text}) south_paper_data
输出结果(部分):
从结果来看,newspaper此次的爬取还是非常成功的,没有出现404被拒绝访问的情况,顺利的把所有新闻报道都爬取下来了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Python文件操作场景中,批量处理文件、遍历目录树是高频需求——无论是统计某文件夹下的文件数量、筛选特定类型文件,还是批量 ...
2026-01-05在神经网络模型训练过程中,开发者最担心的问题之一,莫过于“训练误差突然增大”——前几轮还平稳下降的损失值(Loss),突然在 ...
2026-01-05在数据驱动的业务场景中,“垃圾数据进,垃圾结果出”是永恒的警示。企业收集的数据往往存在缺失、异常、重复、格式混乱等问题, ...
2026-01-05在数字化时代,用户行为数据已成为企业的核心资产之一。从用户打开APP的首次点击,到浏览页面的停留时长,再到最终的购买决策、 ...
2026-01-04在数据分析领域,数据稳定性是衡量数据质量的核心维度之一,直接决定了分析结果的可靠性与决策价值。稳定的数据能反映事物的固有 ...
2026-01-04在CDA(Certified Data Analyst)数据分析师的工作链路中,数据读取是连接原始数据与后续分析的关键桥梁。如果说数据采集是“获 ...
2026-01-04尊敬的考生: 您好! 我们诚挚通知您,CDA Level III 考试大纲将于 2025 年 12 月 31 日实施重大更新,并正式启用,2026年3月考 ...
2025-12-31“字如其人”的传统认知,让不少“手残党”在需要签名的场景中倍感尴尬——商务签约时的签名歪歪扭扭,朋友聚会的签名墙不敢落笔 ...
2025-12-31在多元统计分析的因子分析中,“得分系数”是连接原始观测指标与潜在因子的关键纽带,其核心作用是将多个相关性较高的原始指标, ...
2025-12-31对CDA(Certified Data Analyst)数据分析师而言,高质量的数据是开展后续分析、挖掘业务价值的基础,而数据采集作为数据链路的 ...
2025-12-31在中介效应分析(或路径分析)中,间接效应是衡量“自变量通过中介变量影响因变量”这一间接路径强度与方向的核心指标。不同于直 ...
2025-12-30数据透视表是数据分析中高效汇总、多维度分析数据的核心工具,能快速将杂乱数据转化为结构化的汇总报表。在实际分析场景中,我们 ...
2025-12-30在金融投资、商业运营、用户增长等数据密集型领域,量化策略凭借“数据驱动、逻辑可验证、执行标准化”的优势,成为企业提升决策 ...
2025-12-30CDA(Certified Data Analyst),是在数字经济大背景和人工智能时代趋势下,源自中国,走向世界,面向全行业的专业技能认证,旨 ...
2025-12-29在数据分析领域,周期性是时间序列数据的重要特征之一——它指数据在一定时间间隔内重复出现的规律,广泛存在于经济、金融、气象 ...
2025-12-29数据分析师的核心价值在于将海量数据转化为可落地的商业洞察,而高效的工具则是实现这一价值的关键载体。从数据采集、清洗整理, ...
2025-12-29在金融、零售、互联网等数据密集型行业,量化策略已成为企业提升决策效率、挖掘商业价值的核心工具。CDA(Certified Data Analys ...
2025-12-29CDA中国官网是全国统一的数据分析师认证报名网站,由认证考试委员会与持证人会员、企业会员以及行业知名第三方机构共同合作,致 ...
2025-12-26在数字化转型浪潮下,审计行业正经历从“传统手工审计”向“大数据智能审计”的深刻变革。教育部发布的《大数据与审计专业教学标 ...
2025-12-26统计学作为数学的重要分支,是连接数据与决策的桥梁。随着数据规模的爆炸式增长和复杂问题的涌现,传统统计方法已难以应对高维、 ...
2025-12-26