一个绝对让你欣喜若狂的开源Python爬虫 | 微信公众号爬虫weixin_crawler开源啦

来自:爱迪斯(微信号:Ideas2016),作者:抽丝剥茧

正式介绍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。


What is 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. 反爬措施简单粗暴


使用到的主要工具


语言:Python3.6

web框架:Flask / Flask-socketio / gevent

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

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


功能展示


UI主界面



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



爬虫界面



设置界面



公众号历史文章列表



报告



搜索



加入社区


也许你属于:

  • 刚刚毕业的技术小白,没啥项目开发经验

  • 能轻松让weixin_crawler跑起来的老司机

  • 爬虫大牛,指哪儿爬哪儿

  • 你可能是从事新媒体运营一类工作,完全不懂编程但是希望充分运用weixin_crawler的各项功能服务于自己的工作

不管你属于哪一类,只要你对微信数据分析有浓厚的兴趣,通过作者微信加入我们的社区都能获得想要。


回馈作者

        

weixin_crawler从2018年6月份就开始利用业余时间开发(居然用了半年时间),无奈作者水平有限,至今才勉强能拿出一个可用版本分享给各位爬虫爱好者,多谢大家的期待。如果你喜欢这个项目,期待你的回馈。


你可以通过以下任意一种方式回馈作者(可多选哦):

  • 一个小小的star,并把这个有趣的开源项目分享给别的开发者,哪怕只有一位,只要他也是在技术精进道路上的砥砺前行着

  • 打赏给作者一杯咖啡,以后的熬夜奋战也因此多了一丝效率 :)

  • 加入社群一起贡献代码,我们一起创造出更酷的爬虫

  • 加入知识星球听作者将weixin_crawler的每一个函数和每一个问题解决的思维过程娓娓道来,你会因此认识更多意志坚定的开发者


github地址 

https://github.com/wonderfulsuccess/weixin_crawler

推荐↓↓↓
Python编程
上一篇:Python 浅析列表的变长变短 | 让你的代码更 Pythonic 下一篇:怎样用Python制作好玩的GIF动图?