Python大佬开发了一个爬虫项目教你实现公众号文章的抓取和统计分析

2019-10-15 15:53:42 浏览数 (1)

weixin_crawler从2018年6月份就开始利用业余时间开发,到今日正式问鼎江湖。在正式介绍weixin_crawler之前,我准备了两个问题,这两个问题通过weixin_crawler自带的报告和搜索指数都能得到回答。

问题1:高考在每年的几月举行?

有无数种方法可以知道这个问题的答案。鉴于手头有60个公众号的全部发文数据,共计大约14万篇文章,其中包含了文章的发文时间、正文、阅读量等信息,于是决定使用“大数据”回答这个问题。

在这14万篇文章中出现“高”或者“考”的文章有12285篇,出现“高考”的文章有4390篇,按照月份统计这4390篇文章就得到了这张条形图,很明显每年的6月份出现“高考”的文章最多,如下图。

所以也就不难回答高考所在的月份了,这个问题只是起到一个抛砖引玉的用途,类似的问题还有很多,比如“创客教育是在哪一年兴起的?”

问题2:一个公众号应该在一天的哪个个小时段推文?

以新加坡万事通为例,新加坡万事通截止到今天累计发文10450篇。

第一步,获取公众号新加坡万事通的全部历史发文,得到每篇文章的发文小时和阅读量。

第二步,统计每个小时段内的发文总数,会得到一个类似这样的条形图。从下图可见该公众号主要是晚上7、8、8、10和凌晨12点发文为主,由此可大致推测目标读者的作息时间。

第三步,计算每个小时段发文阅读量的平均数或者中位数。如下图,可见晚上8点钟发文的阅读量中位数最高。

那些发文量靠前同时平均阅读量最高的小时段就应该是最佳发文时间,该公众号应该选择在更早的8点发文而不是大量集中在9点发文,凌晨12点就更加不合适了。实际统计中发现相当大比例的公众号并非在最佳的小时段发文。

以上数据和统计计算工作通过都可以通过weixin_crawler一键完成,现在回到开源微信公众号爬虫weixin_crawler。

weixin_crawler是一款使用Scrapy、Flask、Echarts、Elasticsearch等实现的微信公众号文章爬虫,自带分析报告和全文检索功能,几百万的文档都能瞬间搜索。weixin_crawler设计的初衷是尽可能多、尽可能快地爬取微信公众的历史发文。

下面是该爬虫项目的主要特点:

  1. 使用Python3编写
  2. 爬虫框架为Scrapy并且实际用到了Scrapy的诸多特性,是深入学习Scrapy的不错开源项目
  3. 利用Flask、Flask-socketio、Vue实现了高可用性的UI界面。功能强大实用,是新媒体运营等岗位不错的数据助手
  4. 得益于Scrapy、MongoDB、Elasticsearch的使用,数据爬取、存储、索引均简单高效
  5. 支持微信公众号的全部历史发文爬取
  6. 支持微信公众号文章的阅读量、点赞量、赞赏量、评论量等数据的爬取
  7. 自带面向单个公众号的数据分析报告
  8. 利用Elasticsearch实现了全文检索,支持多种搜索和模式和排序模式,针对搜索结果提供了趋势分析图表
  9. 支持对公众号进行分组,可利用分组数据限定搜索范围
  10. 原创手机自动化操作方法,可实现爬虫无人监管
  11. 反爬措施简单粗暴

如果你想先看看这个项目是否有趣,这段不足3分钟的介绍视频一定是你需要的:

该爬虫项目使用到的主要工具有:

语言:Python3.6

web框架:Flask / Flask-socketio / gevent

js/css库:Vue / Jquery / W3css / Echarts / Front-awsome

爬虫:Scrapy 存储:Mongodb / Redis 索引:Elasticsearch

下面是部分功能展示

1、UI主界面

2、添加公众号爬取任务和已经爬取的公众号列表

3、爬虫界面

4、设置界面

5、公众号历史文章列表

6、报告

7、搜索

本文首发于公众号:爱迪斯,最后献上大佬的weixin_crawler github地址

https://github.com/wonderfulsuccess/weixin_crawler

--------- End ---------

0 人点赞