Python爬虫框架NewSpaper使用详解

 更新时间:2022年08月29日 11:16:19   作者:梦想橡皮擦  
这篇文章主要为大家介绍了Python爬虫框架NewSpaper使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

写在前面

原计划继续写一篇Portia的使用博客,结果在编写代码途中发现,在windows7的DockerToolbox里面使用Portia错误实在是太多了,建议大家还是在Linux虚拟机或者直接在服务器上去运行。否则太耗费精力了~

今天我们转移一下,介绍一款newspaper

newspaper

github地址 : github.com/codelucas/n…

看名字应该能猜到和报纸/新闻有关系,这个库主要用于文章爬取和整理,国内的一个大佬做的,当然他的github上也贴上了其他开发者的推荐

例如requests库的作者在推特上的推荐语

"Newspaper is an amazing python library for extracting & curating articles."

The Changelog专门写了一篇评价文章,也可以围观一下

Newspaper delivers Instapaper style article extraction.

对于这样一款走出国门的爬虫库,我们还是很有必要介绍一下的

安装非常简单

pip install newspaper3k -i pypi.tuna.tsinghua.edu.cn/simple

官方文档可以查阅:newspaper.readthedocs.io/en/latest/u…

newspaper框架的使用

对于这款框架,使用起来难度是非常低的。简单对照这一页文档即可应用起来

例如:单条新闻内容获取

第一种应用方式,直接获取网页内容

from newspaper import Article
url = "https://36kr.com/p/857678806293124"
article = Article(url) # 创建文章对象
article.download()        # 加载网页
article.parse()           # 解析网页
print(article.html) # 打印html文档

当然还有一些其他属性,不过该框架都是基于关键字识别的,有一些BUG存在,有时识别不准

# print(article.html) # 打印html文档
print(article.text) # 新闻正文
print("-"*100)
print(article.title) # 新闻标题
print("-"*100)
print(article.authors)  # 新闻作者
print("-"*100)
print(article.summary)   # 新闻摘要
print(article.keywords) # 新闻关键词
# print(article.top_image) # 本文的top_image的URL
# print(article.images) # 本文中的所有图像url

newspaper文章缓存

默认情况下,newspaper缓存所有待提取的文章,如果文章被爬取过之后就会清除掉它。此功能用于防止重复的文章和提高提取速度。可以使用memoize_articles参数选择是否缓存。

但当我使用下面这个办法进行提取的时候,神奇的BUG出现了,怎么也得不到我想要的文章了。唉~看来框架完善之路还是要继续啊

import newspaper
url = "https://news.sina.com.cn/c/2020-08-29/doc-iivhvpwy3651884.shtml"
# article = Article(url) # 创建文章对象
# article.download()        # 加载网页
# article.parse()           # 解析网页
news = newspaper.build(url, language='zh', memoize_articles=False)
article = news.articles[0]
article.download()
article.parse()
print('title=',article.title)

其他功能

在应用的过程中发现确实解析存在很大的问题,不过整体的框架设计思路还是非常棒的。有点高开低走 ,看到github上的评语其实对newspaper是非常有期待的,使用之后,我建议还是使用requests然后加上bs4自己搞搞更加合理。

除了上面简单介绍到的功能,它还有一些扩展,例如下面这些

  • requestsnewspaper合体解析网页正文,也就是用requests爬取,newspaper充当解析器
  • 可以调用Google Trends信息
  • 支持多任务爬取
  • 支持NPL自然语言处理
  • 甚至官方文档还给了一个Easter Eggs复活节彩蛋~,可以拉倒文档最下面查阅

唉~总之一言难尽啊

写在后面

本打算 Python 玩转NewSpaper爬虫框架,看来是玩不转了,扩展一下知识点也是极好的,当然github下载源码之后,好好研究一下大佬的编码规范,能学到很多。

以上就是Python爬虫框架NewSpaper使用详解的详细内容,更多关于Python爬虫框架NewSpaper的资料请关注脚本之家其它相关文章!

相关文章

  • Python GUI编程详解

    Python GUI编程详解

    这篇文章主要介绍了Python GUI编程,结合完整示例形式分析了Python基于tkinter模块的GUI图形界面编程相关实现技巧,需要的朋友可以参考下
    2021-10-10
  • Python使用BeautifulSoup4修改网页内容的实战记录

    Python使用BeautifulSoup4修改网页内容的实战记录

    BeautifulSoup除了可以查找和定位网页内容,还可以修改网页,下面这篇文章主要给大家介绍了关于Python使用BeautifulSoup4修改网页内容的相关资料,需要的朋友可以参考下
    2022-05-05
  • Python中将dataframe转换为字典的实例

    Python中将dataframe转换为字典的实例

    下面小编就为大家分享一篇Python中将dataframe转换为字典的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python sys模块及常用功能

    python sys模块及常用功能

    在Python中,sys模块提供了访问和使用解释器的许多功能的方法,包括命令行参数、环境变量、路径管理、标准输入输出流等,sys模块是Python的标准库的一部分,不需要额外安装即可使用,本文介绍python sys模块相关知识,感兴趣的朋友一起看看吧
    2024-09-09
  • 在java中如何定义一个抽象属性示例详解

    在java中如何定义一个抽象属性示例详解

    这篇文章主要给大家介绍了关于在java中如何定义一个抽象属性示例详解的相关资料,需要的朋友可以参考下
    2017-08-08
  • django序列化时使用外键的真实值操作

    django序列化时使用外键的真实值操作

    这篇文章主要介绍了django序列化时使用外键的真实值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python中Flask-RESTful编写API接口(小白入门)

    Python中Flask-RESTful编写API接口(小白入门)

    这篇文章主要介绍了Python中Flask-RESTful编写API接口(小白入门),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 谈谈python中GUI的选择

    谈谈python中GUI的选择

    本篇文章给大家详细分析了一个在python编程中GUI的选择相关知识点,如果大家对此有兴趣可以阅读参考下。
    2018-03-03
  • pandas 实现某一列分组,其他列合并成list

    pandas 实现某一列分组,其他列合并成list

    这篇文章主要介绍了pandas 实现某一列分组,其他列合并成list的案例。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python实现字符串模糊匹配方式

    Python实现字符串模糊匹配方式

    这篇文章主要介绍了Python实现字符串模糊匹配方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论