携手创作,一起成长!这是我参加「日新方案 8 月更文应战」的第30天,点击查看活动概况

写在前面

原方案继续写一篇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自己搞搞愈加合理。

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

  1. requestsnewspaper合体解析网页正文,也便是用requests爬取,newspaper充任解析器
  2. 能够调用Google Trends信息
  3. 支撑多任务爬取
  4. 支撑NPL自然语言处理
  5. 乃至官方文档还给了一个Easter Eggs复活节彩蛋~,能够拉倒文档最下面查阅

唉~总归一言难尽啊

写在后面

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