github地址在文末
正式介绍weixin_crawler之前,我准备了两个问题,这两个问题通过weixin_crawler自带的报告和搜索指数都能得到回答。
问题1:高考在每年的几月举行?
有无数种方法可以知道这个问题的答案。鉴于手头有60个公众号的全部发文数据,共计大约14万篇文章,其中包含了文章的发文时间、正文、阅读量等信息,于是决定使用“大数据”回答这个问题。
在这14万篇文章中出现“高”或者“考”的文章有12285篇,出现“高考”的文章有4390篇,按照月份统计这4390篇文章就得到了这张条形图,很明显每年的6月份出现“高考”的文章最多,如下图。
所以也就不难回答高考所在的月份了,这个问题只是起到一个抛砖引玉的用途,类似的问题还有很多,比如“创客教育是在哪一年兴起的?”
问题2:一个公众号应该在一天的哪个个小时段推文?
以新加坡万事通为例,新加坡万事通截止到今天累计发文10450篇。
第一步,获取公众号新加坡万事通的全部历史发文,得到每篇文章的发文小时和阅读量。
第二步,统计每个小时段内的发文总数,会得到一个类似这样的条形图。从下图可见该公众号主要是晚上7、8、9、10和凌晨12点发文为主,由此可大致推测目标读者的作息时间。
第三步,计算每个小时段发文阅读量的平均数或者中位数。如下图,可见晚上8点钟发文的阅读量中位数最高。
那些发文量靠前同时平均阅读量最高的小时段就应该是最佳发文时间,该公众号应该选择在更早的8点发文而不是大量集中在9点发文,凌晨12点就更加不合适了。实际统计中发现相当大比例的公众号并非在最佳的小时段发文。
以上数据和统计计算工作通过都可以通过weixin_crawler一键完成,现在回到开源微信公众号爬虫weixin_crawler。
What is weixin_crawler?
weixin_crawler是一款使用Scrapy、Flask、Echarts、Elasticsearch等实现的微信公众号文章爬虫,自带分析报告和全文检索功能,几百万的文档都能瞬间搜索。weixin_crawler设计的初衷是尽可能多、尽可能快地爬取微信公众的历史发文。
主要特点
使用到的主要工具
语言:Python3.6
web框架:Flask / Flask-socketio / gevent
js/css库:Vue / Jquery / W3css / Echarts / Front-awsome
爬虫:Scrapy 存储:Mongodb / Redis 索引:Elasticsearch
功能展示
UI主界面
添加公众号爬取任务和已经爬取的公众号列表
爬虫界面
设置界面
公众号历史文章列表
报告
搜索
对这个项目感兴趣的朋友可以从下方链接或阅读原文跳转GitHub噢,记得star这个小伙伴
weixin_crawler github地址
https://github.com/wonderfulsuccess/weixin_crawler