脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python爬虫框架NewSpaper使用详解

Python爬虫框架NewSpaper使用详解

2022-08-29 14:17梦想橡皮擦 Python

这篇文章主要为大家介绍了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

Python爬虫框架NewSpaper使用详解

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

newspaper框架的使用

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

例如:单条新闻内容获取

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
# 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出现了,怎么也得不到我想要的文章了。唉~看来框架完善之路还是要继续啊

?
1
2
3
4
5
6
7
8
9
10
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的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/7136556501920907272

延伸 · 阅读

精彩推荐
  • Python高考要来啦!用Python爬取历年高考数据并分析

    高考要来啦!用Python爬取历年高考数据并分析

    转眼间,高考的日子又要来临了,不知道高考学子们准备的怎么样了,今天这篇文章简单且随意地分析一下高考的一些数据,需要的朋友可以参考下...

    weixin_436496919002021-11-22
  • Python在Python中操作时间之tzset()方法的使用教程

    在Python中操作时间之tzset()方法的使用教程

    这篇文章主要介绍了在Python中操作时间之tzset()方法的使用教程,是Python学习中的基础知识,需要的朋友可以参考下...

    Python教程网3742020-07-06
  • PythonOpenCV简单标准数字识别的完整实例

    OpenCV简单标准数字识别的完整实例

    这篇文章主要给大家介绍了关于OpenCV简单标准数字识别的相关资料,要通过opencv 进行数字识别离不开训练库的支持,需要对目标图片进行大量的训练,才能...

    huang_nansen4332022-01-04
  • PythonPython函数中参数是传递值还是引用详解

    Python函数中参数是传递值还是引用详解

    这篇文章主要介绍了深入了解Python函数中参数是传值还是传引用,在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的,需要...

    FOOFISH-PYTHON之禅8812021-07-29
  • PythonPython中的迭代器漫谈

    Python中的迭代器漫谈

    这篇文章主要介绍了Python中的迭代器漫谈,本文主要讲解range函数和xrange函数性能区别,需要的朋友可以参考下 ...

    Hito''s Blog3532020-05-21
  • Python使用OpenCV为图像加水印的教程

    使用OpenCV为图像加水印的教程

    通过本文学习将学会如何使用 OpenCV 为多个图像添加水印,在 OpenCV 中调整图像大小也很方便,对OpenCV图像加水印相关知识感兴趣的朋友一起看看吧...

    woshicver6352021-12-28
  • Python基于Python实现报表自动化并发送到邮箱

    基于Python实现报表自动化并发送到邮箱

    作为数据分析师,我们需要经常制作统计分析图表。但是报表太多的时候往往需要花费我们大部分时间去制作报表。本文将利用Python实现报表自动化并发送...

    Python编程学习圈11082022-07-06
  • Pythonpython识别图像并提取文字的实现方法

    python识别图像并提取文字的实现方法

    这篇文章主要介绍了python识别图像并提取文字的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    MA木易YA5832021-07-26