Newspaper3k框架:文章的抓取和管理
·
Newspaper是一个python3库。
注:Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。
-
这是 Newspaper 的github链接。
-
这是 Newspaper文档说明的链接。
-
这是 Newspaper快速入门的链接。
Get it:pip3 install newspaper3k
功能
-
多线程文章下载框架
-
新闻网址识别
-
从html中提取文本
-
从html中提取顶部图像
-
从html中提取所有图像
-
从文本中提取关键字
-
从文本中提取摘要
-
从文本中提取作者
-
Google趋势术语提取。
-
使用10种以上语言(英语,中文,德语,阿拉伯语......)
步骤
1.建立新闻来源
import newspaper
web_paper = newspaper.build("http://www.coscocs.com/", language="zh", memoize_articles=False)
注:文章缓存:默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能用于防止重复的文章和提高提取速度。可以使用memoize_articles参数选择退出此功能。
2.提取文章
for article in web_paper.articles:
print(article.url)
output:
http://www.coscocs.com/art/2018/12/14/art_6864_87776.html
http://www.coscocs.com/art/2018/12/11/art_6864_86037.html
http://www.coscocs.com/art/2018/12/10/art_6864_85996.html
http://www.coscocs.com/art/2018/12/9/art_6864_85985.html
http://www.coscocs.com/art/2018/12/9/art_6864_85979.html
http://www.coscocs.com/art/2018/12/7/art_6864_85950.html
http://www.coscocs.com/art/2018/11/26/art_6865_83742.html
......
3.提取源类别
for category in web_paper.category_urls():
print(category)
output:
http://www.coscocs.com/
4.提取源提要
for feed_url in web_paper.feed_urls():
print(feed_url)
5.提取源品牌和描述
print(web_paper.brand) # 品牌
print(web_paper.description) # 描述
新闻文章
1.下载文章
article = Article("http://www.sol.com.cn/", language='zh') # Chinese
article.download()
2.解析文章并提取想要的信息
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") # 获取文章正文
简单例子
import newspaper
from newspaper import Article
def spider_newspaper_url(url):
web_paper = newspaper.build("".join(url), language="zh", memoize_articles=False)
"""
默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。
使用memoize_articles参数选择退出此功能。
"""
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") # 获取文章正文
if __name__ == "__main__":
web_lists = ["http://www.coscocs.com/",
# "http://www.sol.com.cn/",
# "http://ship.sh/",
]
for web_list in web_lists:
spider_newspaper_url(web_list)
更多推荐
已为社区贡献5条内容
所有评论(0)