澎湃新闻网站全站新闻爬虫及各大新闻平台聚合爬虫发布

月小水长

共 1287字,需浏览 3分钟

 · 2021-01-06

    点击上方 月小水长 并 设为星标,第一时间接收干货推送

这是 月小水长 的第 61 篇原创干货

idea of startproject

  1. 对于 web 开发者而言,目前各大新闻门户网站,新浪新闻,百度新闻,腾讯新闻,澎湃新闻,头条新闻并没有提供稳定可用的 feed api。

  2. 对于 nlper,缺乏足够的新闻语料数据集来供训练。

  3. 对于新闻传播/社会学/心理学等从业者,缺乏获取新闻数据的简单易用途径来供分析。

  4. 如果上面三点是某见识所限,其实并不存在的话,第 4 点,则是某的私心,某以为互联网的记忆太短了,热搜一浪盖过一浪,所以试图定格互联网新闻的某些瞬间,最后会以网站的形式发布出来。

这个 project 我几年前就有想法了,仓库两年前就推送到了 Github,只不过只有一个 readme 文件,昨晚跨年,清理 Github,这个想法就又强烈了起来,说干就干。

project 的 Github:https://github.com/Python3Spiders/AllNewsSpider

其实最开始并没有将澎拜新闻包括在内,某最近才开始重点关注澎湃新闻,相对于其它新闻的娱乐性,澎湃新闻的严肃活泼笔风,深得我意。

澎湃新闻爬虫

先说下这个爬虫的实用之处,罗列如下
  1. 全自动爬取澎湃新闻全站新闻内容,包括时事财经思想生活四大 channel 。

  2. 速度较快,容错高,对各种异常做了对应处理,目前开源的 pyd 测试抓取 w 级数据正常(如果碰到新异常,请提 issue)。

  3. 字段齐全,包括 recode_time(该条新闻被抓取的时间)、news_url 以及其他各个新闻的必要字段,共计 12 个。

再说说如何使用(默认读者均有 python3.6+ 环境)
  1. 将仓库 pengpai 文件夹下的 pengpai_news_spider.pyd 文件下载到本地,新建项目,把 pyd 文件放进去

  2. 项目根目录下新建 runner.py,写入以下代码即可运行并抓取

    import pengpai_news_spider
    pengpai_news_spider.main()

爬取过程中是下面这样的

图中 https://www.thepaper.cn/newsDetail_forward_10623559 可能是 h5 或者 公众号文章或者 视频之类的说明该条新闻不在我们的目标爬取范围内,不会被保存起来。
爬取结束了,会在当前目录下生成一个 澎湃新闻.xlsx文件,里面保持了四个  channel 的所有网站上可浏览的文本新闻,一个 channel 对应一个 sheet_name,如下图

Todo

实现增量更新,初步思路是使用布隆过滤器去 news_url 的重。

阅读原文 即可直达 project 的 Github 地址。

最后,新年第一天,元旦快乐

浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报