Python爬虫框架NewSpaper使用详解

作者:梦想橡皮擦 时间:2022-06-03 06:20:26 

写在前面

原计划继续写一篇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框架的使用

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

例如:单条新闻内容获取

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

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下载源码之后,好好研究一下大佬的编码规范,能学到很多。

来源:https://juejin.cn/post/7136556501920907272

标签:Python,爬虫框架,NewSpaper
0
投稿

猜你喜欢

  • 详解go语言中sort如何排序

    2023-09-03 14:00:38
  • PHP生成饼图的示例代码

    2023-05-25 10:24:09
  • 利用后缀表达式(逆波兰式)算24点的JavaScript版算法

    2010-01-23 10:57:00
  • mysql使用LOAD语句批量录入数据

    2010-03-18 16:19:00
  • 如何实现让每句话的头一个字母都大写?

    2010-05-24 18:26:00
  • 使用Python更换外网IP的方法

    2021-01-25 04:25:46
  • asp如何制作一个安全的页面?

    2010-06-29 21:22:00
  • Python命令行解析器argparse详解

    2023-06-14 01:08:14
  • [译]艺术和设计的差异 (2)

    2009-10-15 12:36:00
  • php中去除所有js,html,css代码

    2023-07-08 07:59:52
  • 38个Asp内置函数介绍

    2008-11-27 16:25:00
  • widows下安装pycurl并利用pycurl请求https地址的方法

    2023-07-09 03:21:18
  • SQL Select语句完整的执行顺序

    2008-09-28 21:22:00
  • 实例讲解在MySQL中如何导出整个数据库

    2009-09-01 10:03:00
  • 去除DW MX 2004表格宽度辅助

    2010-09-02 12:37:00
  • 在windows下 1045 access denied for user

    2010-03-04 11:44:00
  • Oracle8i和Microsoft SQL Server比较

    2010-07-26 13:05:00
  • js友好的表单验证程序vform

    2007-08-16 13:32:00
  • asp中用insert into语句向数据库插入记录(添加信息)的方法

    2011-02-05 10:46:00
  • postman和python mock测试过程图解

    2022-02-19 00:59:57
  • asp之家 网络编程 m.aspxhome.com