一、框架介绍

Newspaper是一个python3库,但是Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。

这是 Newspaper 的github链接:

https://github.com/codelucas/newspaper

这是 Newspaper文档说明的链接:

https://newspaper.readthedocs.io/en/latest/

这是 Newspaper快速入门的链接:

https://newspaper.readthedocs.io/en/latest/user_guide/quickstart.html

安装方法:
pip3 install newspaper3k

二、功能

主要功能如下:

  • 多线程文章下载框架
  • 新闻网址识别
  • 从html中提取文本
  • 从html中提取顶部图像
  • 从html中提取所有图像
  • 从文本中提取关键字
  • 从文本中提取摘要
  • 从文本中提取作者
  • Google趋势术语提取。
  • 使用10种以上语言(英语,中文,德语,阿拉伯语……)

介绍:

1.建立新闻来源
import newspaper
web_paper = newspaper.build("http://www.sxdi.gov.cn/gzdt/jlsc/", language="zh", memoize_articles=False)
注:文章缓存:默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能用于防止重复的文章和提高提取速度。可以使用memoize_articles参数选择退出此功能。
2.提取文章的url
for article in web_paper.articles:
print(article.url)
output:
http://www.sxdi.gov.cn/gzdt/jlsc/2019101220009.html
http://www.sxdi.gov.cn/gzdt/jlsc/2019101119998.html
http://www.sxdi.gov.cn/gzdt/jlsc/2019100919989.html
http://www.sxdi.gov.cn/gzdt/jlsc/2019100819980.html
http://www.sxdi.gov.cn/gzdt/jlsc/2019092919940.html
http://www.sxdi.gov.cn/gzdt/jlsc/2019092919933.html
.... 
3.提取源类别
for category in web_paper.category_urls():
print(category)
output:
http://www.sxdi.gov.cn/gzdt/jlsc/....
4.提取源提要
for feed_url in web_paper.feed_urls():
print(feed_url)
 

5.提取源品牌和描述

print(web_paper.brand)  # 品牌
print(web_paper.description) # 描述
print("一共获取%s篇文章" % web_paper.size()) # 文章的数目
6.下载文章
from  newspaper import Article
article = Article("http://www.sol.com.cn/", language='zh') # Chinese
article.download()
7.解析文章并提取想要的信息
article.parse()  #网页解析
print("title=",article.title) # 获取文章标题
print("author=", article.authors) # 获取文章作者
print("publish_date=", article.publish_date) # 获取文章日期
print("top_iamge=",article.top_image) # 获取文章顶部图片地址
print("movies=",article.movies) # 获取文章视频链接
print("text=",article.text,"\n") # 获取文章正文
article.nlp()
print('keywords=',article.keywords)#从文本中提取关键字
print("summary=",article.summary)# 获取文章摘要
print("images=",article.images)#从html中提取所有图像
print("imgs=",article.imgs)
print("html=",article.html)#获取html
简单例子:
import newspaper
from newspaper import Article def spider_newspaper_url(url):
"""
默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。
使用memoize_articles参数选择退出此功能。
"""
web_paper = newspaper.build(url, language="zh", memoize_articles=False)
print("提取新闻页面的url!!!")
for article in web_paper.articles:
# 获取新闻网页的url
print("新闻页面url:", article.url)
# 调用spider_newspaper_information函数获取新闻网页数据
spider_newspaper_information(article.url) print("一共获取%s篇文章" % web_paper.size()) # 文章的数目 # 获取文章的信息
def spider_newspaper_information(url):
# 建立链接和下载文章
article = Article(url, language='zh') # Chinese
article.download()
article.parse() # 获取文章的信息
print("title=", article.title) # 获取文章标题
print("author=", article.authors) # 获取文章作者
print("publish_date=", article.publish_date) # 获取文章日期
# print("top_iamge=", article.top_image) # 获取文章顶部图片地址
# print("movies=", article.movies) # 获取文章视频链接
print("text=", article.text, "\n") # 获取文章正文
print("summary=", article.summary) # 获取文章摘要 if __name__ == "__main__":
web_lists = ["http://www.sxdi.gov.cn/gzdt/jlsc/","http://www.people.com.cn/GB/59476/"]
for web_list in web_lists:
spider_newspaper_url(web_list)

使用Newspaper3k框架快速抓取文章信息的更多相关文章

  1. PHP快速抓取快递信息

    <?php header("Content-type:text/html;charset=utf-8"); /** * Express.class.php 快递查询类 * @ ...

  2. .net抓取网页信息 - Jumony框架使用1

    往往在实际开发中,经常会用到一些如抓取网站信息之类的的操作,往往大家采用的是用一些正则的方式获取,但是有时候正则是很死板的,我们常常试想能不能使用jquery的选择器,获取符合自己要求的元素,然后进行 ...

  3. Jumony快速抓取网页

    Jumony快速抓取网页 --- Jumony使用笔记--icode   作者:郝喜路   个人主页:http://www.cnicode.com      博客地址:http://haoxilu.c ...

  4. [原创]adb使用教程v1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  5. [原创]adb使用教程v1.1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  6. 利用pandas库中的read_html方法快速抓取网页中常见的表格型数据

    本文转载自:https://www.makcyun.top/web_scraping_withpython2.html 需要学习的地方: (1)read_html的用法 作用:快速获取在html中页面 ...

  7. Web Scraper 高级用法——抓取属性信息 | 简易数据分析 16

    这是简易数据分析系列的第 16 篇文章. 这期课程我们讲一个用的较少的 Web Scraper 功能--抓取属性信息. 网页在展示信息的时候,除了我们看到的内容,其实还有很多隐藏的信息.我们拿豆瓣电影 ...

  8. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格

    通过上一篇随笔的处理,我们已经拿到了书的书名和ISBN码.(网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息 ...

  9. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(2): 抓取allitebooks.com书籍信息及ISBN码

    这一篇首先从allitebooks.com里抓取书籍列表的书籍信息和每本书对应的ISBN码. 一.分析需求和网站结构 allitebooks.com这个网站的结构很简单,分页+书籍列表+书籍详情页. ...

随机推荐

  1. codeforces 762 D. Maximum path(dp)

    题目链接:http://codeforces.com/problemset/problem/762/D 题意:给出一个3*n的矩阵然后问从左上角到右下角最大权值是多少,而且每一个点可以走上下左右,但是 ...

  2. ASP.NET Core结合Nacos来完成配置管理和服务发现

    目录 前言 Nacos的简介 启动Nacos 配置管理 服务发现 写在最后 前言 今年4月份的时候,和平台组的同事一起调研了一下Nacos,也就在那个时候写了.net core版本的非官方版的SDK. ...

  3. 前端利器躬行记(4)——webpack进阶

    webpack是一个非常强大的工具,除了前文所介绍的基础概念之外,还有各种进阶应用,例如Source Map.模块热替换.集成等,本文会对这些内容做依次讲解. 一. runtime和manifest ...

  4. POJ 3083 Children of the Candy Corn (DFS + BFS)

    POJ-3083 题意: 给一个h*w的地图. '#'表示墙: '.'表示空地: 'S'表示起点: 'E'表示终点: 1)在地图中仅有一个'S'和一个'E',他们为位于地图的边墙,不在墙角: 2)地图 ...

  5. .NET Core 微信小程序退款——(统一退款)

    继上一篇".NET Core 微信小程序支付——(统一下单)后",本文将实现统一退款功能,能支付就应该能退款嘛,一般涉及到钱的东西都会比较敏感,所以在设计退款流程时一定要严谨,不能 ...

  6. this指哪儿

    this的指向问题 一.this初识 this是javascript中最复杂的机制之一.它尤为特殊,被自动定义在所有函数的作用域中.这篇文章将浅析this与函数的关系. 二.了解this 学习this ...

  7. Java SSM三端分离开发在线教育平台实战视频教程

    目录: 1-01——在线网校实战课程介绍1-02——Eclipse.Maven.JDK介绍1-03——Maven构建Project1-04——新浪SAE介绍2-01——平台业务结构概览2-02——平台 ...

  8. spring boot日志logback输出

    logback是spring boot的官方推荐日志. 1.在代码中使用logback日志: import org.slf4j.Logger; import org.slf4j.LoggerFacto ...

  9. 8 分钟了解 Kubernetes

    Kubernetes 脱胎于 Google 的 Borg 系统,是一个功能强大的容器编排系统.Kubernetes 及其整个生态系统(工具.模块.插件等)均使用 Go 语言编写,从而构成一套面向 AP ...

  10. Hadoop学习笔记—20.网站日志分析项目案例

    1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖.回帖,如图1所示. 图1 项目来源网站-技术学习论坛 本次实践的目的就在于 ...