第74天:Python newspaper 框架

1 简介

newspaper 框架是一个主要用来提取新闻内容及分析的 Python 爬虫框架,更确切的说,newspaper 是一个 Python 库,但这个库由第三方开发。

newspaper 主要具有如下几个特点:

  • 比较简洁

  • 速度较快

  • 支持多线程

  • 支持多语言

GitHub 链接:https://github.com/codelucas/newspaper

安装方法:pip3 install newspaper3k

2 基本使用

2.1 获取新闻

我们以环球网为例,如下所示:

import newspaper
hq_paper = newspaper.build("https://tech.huanqiu.com/", language="zh", memoize_articles=False)

默认情况下,newspaper 缓存所有以前提取的文章,并删除它已经提取的任何文章,使用 memoize_articles 参数选择退出此功能。

2.2 获取文章 URL

>>> import newspaper
>>> hq_paper = newspaper.build("https://tech.huanqiu.com/", language="zh", memoize_articles=False)>>> for article in hq_paper.articles:>>> print(article.url)
http://world.huanqiu.com/gallery/9CaKrnQhXvyhttp://mil.huanqiu.com/gallery/7RFBDCOiXNChttp://world.huanqiu.com/gallery/9CaKrnQhXvzhttp://world.huanqiu.com/gallery/9CaKrnQhXvw...

2.3 获取类别

>>> import newspaper
>>> hq_paper = newspaper.build("https://tech.huanqiu.com/", language="zh", memoize_articles=False)>>> for category in hq_paper.category_urls():>>> print(category)
http://www.huanqiu.comhttp://tech.huanqiu.comhttp://smart.huanqiu.comhttps://tech.huanqiu.com/

2.4 获取品牌和描述

>>> import newspaper
>>> hq_paper = newspaper.build("https://tech.huanqiu.com/", language="zh", memoize_articles=False)>>> print(hq_paper.brand)>>> print(hq_paper.description)
huanqiu环球网科技,不一样的IT视角!以“成为全球科技界的一面镜子”为出发点,向关注国际科技类资讯的网民,提供国际科技资讯的传播与服务。

2.5 下载解析

我们选取其中一篇文章为例,如下所示:

>>> import newspaper
>>> hq_paper = newspaper.build("https://tech.huanqiu.com/", language="zh", memoize_articles=False)>>> article = hq_paper.articles[4]# 下载>>> article.download()# 解析article.parse()# 获取文章标题>>> print("title=", article.title)# 获取文章日期>>> print("publish_date=", article.publish_date)# 获取文章作者>>> print("author=", article.authors)# 获取文章顶部图片地址>>> print("top_iamge=", article.top_image)# 获取文章视频链接>>> print("movies=", article.movies)# 获取文章摘要>>> print("summary=", article.summary)# 获取文章正文>>> print("text=", article.text)
title= “美丽山”的美丽传奇publish_date= 2019-11-15 00:00:00...

2.6 Article 类使用

import newspaperfrom newspaper import Article
def newspaper_url(url): web_paper = newspaper.build(url, language="zh", memoize_articles=False) for article in web_paper.articles: newspaper_info(article.url)
def newspaper_info(url): article = Article(url, language='zh') article.download() article.parse() print("title=", article.title) print("author=", article.authors) print("publish_date=", article.publish_date) print("top_iamge=", article.top_image) print("movies=", article.movies) print("text=", article.text) print("summary=", article.summary)
if __name__ == "__main__": newspaper_url("https://tech.huanqiu.com/")

3 多任务

当我们需要从多个渠道获取新闻信息时可以采用多任务的方式,如下所示:

import newspaperfrom newspaper import news_pool
hq_paper = newspaper.build('https://www.huanqiu.com', language="zh")sh_paper = newspaper.build('http://news.sohu.com', language="zh")sn_paper = newspaper.build('https://news.sina.com.cn', language="zh")
papers = [hq_paper, sh_paper, sn_paper]# 线程数为 3 * 2 = 6news_pool.set(papers, threads_per_source=2)news_pool.join()print(hq_paper.articles[0].html)

因获取内容较多,上述代码执行可能需要一段时间,我们要耐心等待。

总结

本文为大家介绍了 Python 爬虫框架 newspaper,让大家能够对 newspaper 有个基本了解以及能够上手使用。newspaper 框架还存在一些 bug,因此,我们在实际工作中需要综合考虑、谨慎使用。

示例代码:https://github.com/JustDoPython/python-100-day/tree/master/day-074

参考:https://newspaper.readthedocs.io/en/latest/user_guide/quickstart.html#performing-nlp-on-an-article

系列文章
第73天:itchat 微信机器人简介
第72天:PySpider框架的使用
第71天:Python Scrapy 项目实战
从 0 学习 Python 0 - 70 大合集总结
(0)

相关推荐

  • 推荐良心网站,非常实用,值得你拥有

    行业报告    http://report.seedsufe.com/#/report 世界之声    https://aporee.org/maps/ 商用图片    https://www.pex ...

  • 英国家长的心头好:上海数学“一课一练”

    背景音乐:aLIEz 朗读音频&单词跟读音频均在会员课程:英文杂谈.请对照学习. Amazon UK/亚马逊英国网站: Amazon Customer I was told that my s ...

  • Newspaper 一个能下载38种语言新闻文章的 Python 模块

    Newspaper 是一个很棒的python库,用于提取和整理文章. 它有以下的优点: 多线程文章下载框架 识别新闻网址 从html提取文本 从html提取顶部图像 从html提取所有图像 从文本中提 ...

  • 永恆無題 | Jan De Maesschalck

    微店:森雅艺术馆 视频号:森雅艺术馆 www.triceratops-design.com Jan De Maesschalck b. 1958   ·   Belgium "Jan De ...

  • 傻瓜式文章爬虫-newspaper库简介

    今天比较闲,我就浏览了会github上有关python爬虫的项目.看到一个newspaper库,关注数挺高的.作者受lxml的强大和requests的简洁,开发了newspaper库. request ...

  • 2021-02-24 东方时事解读

    [吐槽]立立  天下围攻中国一个重要的节点就是收编并购大部分国家,然后控制这些国家替代中国市场 [群主]东方时事解读 东方#    当然,话虽如此,由于对方 仍然在企图,且也在继续经济围攻中国,所以, ...

  • Python GUI框架有哪些?Linux入门

    GUI,全称为图形用户界面,又称为图形用户接口,是一种人与计算机通信的界面显示格式.那么Python常用GUI框架有哪些呢?我们来看看具体介绍. Tkinter:一个轻量级的跨平台图形用户界面开发工具 ...

  • 15个最受欢迎的Python开源框架

    编辑推荐: 本文来源博客园,主要通过示例演示15个最受欢迎的Python开源框架,希望对您的学习有所帮助. 一.Django: Python Web应用开发框架 Django是一个开放源代码的Web应 ...

  • Python开源框架有哪些?这几个最常见!

    当我们学习python的时候,会遇到很多开源框架,这些框架可以实现很多事情,在不同岗位上都具有重要作用.面对python开源框架,你最中意哪一个呢? 1.Django: Python Web应用开发框 ...

  • Python爬虫框架有哪些?这几种最常见!

    Python之所以被称为"爬虫"的首选语言,主要原因是因为Python拥有很多爬虫框架,不仅功能齐全.优点多,而且可以帮助程序员以更少的代码实现更多的功能,让工作变得更加轻松便利. ...

  • 什么是Python web2py框架?看完就明白了!

    众所周知,Python的框架有很多,除了我们经常提到的Django.flask框架之外,Python还有很多框架是我们没有介绍过的,比如说web2py框架,那么什么是web2py框架呢?它有什么特性? ...

  • 7款好用的Python爬虫框架!

    Python是网络爬虫的首选语言,在爬虫领域有着独特的优势和用途,而且Python还拥有很多爬虫框架,那么你知道哪个Python爬虫框架最高效吗?这几个你一定要知道. 1.Scrapy Scrapy是 ...

  • Python Django框架有什么优势?功能介绍

    Python Django框架是一款全能框架,内置许多模块,极大方便了web开发者,同时它也被称之为Python最重要的框架.那么为什么Django框架很重要呢?我们来看看吧. Django是Pyth ...

  • 为什么说Django作为Python Web框架一哥的地位不会变?

    对 Python 工程师来说,Web 开发可以选择的框架很多,比如 Django.Flask.Tornado 等等,而其中 Django 是最全面,也是最受欢迎的,我们熟知的 YouTube.Inst ...

  • 选择一个 Python Web 框架:Django vs Flask vs Pyramid

    WEB前端开发社区 昨天 Pyramid, Django, 和 Flask都是优秀的框架,为项目选择其中的哪一个都是伤脑筋的事.我们将会用三种框架实现相同功能的应用来更容易的对比三者.也可以直接跳到框 ...