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
官方文档可以查阅: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自己搞搞更加合理。
除了上面简单介绍到的功能,它还有一些扩展,例如下面这些
requests
和newspaper
合体解析网页正文,也就是用requests爬取,newspaper充当解析器可以调用
Google Trends
信息支持多任务爬取
支持NPL自然语言处理
甚至官方文档还给了一个
Easter Eggs
复活节彩蛋~,可以拉倒文档最下面查阅
唉~总之一言难尽啊
写在后面
本打算 Python 玩转NewSpaper爬虫框架,看来是玩不转了,扩展一下知识点也是极好的,当然github下载源码之后,好好研究一下大佬的编码规范,能学到很多。
来源:https://juejin.cn/post/7136556501920907272
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
详解go语言中sort如何排序
PHP生成饼图的示例代码
利用后缀表达式(逆波兰式)算24点的JavaScript版算法
mysql使用LOAD语句批量录入数据
如何实现让每句话的头一个字母都大写?
使用Python更换外网IP的方法
asp如何制作一个安全的页面?
Python命令行解析器argparse详解
[译]艺术和设计的差异 (2)
php中去除所有js,html,css代码
38个Asp内置函数介绍
widows下安装pycurl并利用pycurl请求https地址的方法
![](https://img.aspxhome.com/file/2023/4/61204_0s.jpg)
SQL Select语句完整的执行顺序
实例讲解在MySQL中如何导出整个数据库
去除DW MX 2004表格宽度辅助
![](https://img.aspxhome.com/file/UploadPic/20072/200723113022142s.gif)
在windows下 1045 access denied for user
Oracle8i和Microsoft SQL Server比较
js友好的表单验证程序vform
asp中用insert into语句向数据库插入记录(添加信息)的方法
postman和python mock测试过程图解
![](https://img.aspxhome.com/file/2023/2/70152_0s.png)