一个绝对让你欣喜若狂的开源Python爬虫

来源: 爱迪斯 链接:

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

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

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

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

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

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

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

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

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

主要特点

使用Python3编写

爬虫框架为Scrapy并且实际用到了Scrapy的诸多特性,是深入学习Scrapy的不错开源项目

利用Flask、Flask-socketio、Vue实现了高可用性的UI界面。功能强大实用,是新媒体运营等岗位不错的数据助手

得益于Scrapy、MongoDB、Elasticsearch的使用,数据爬取、存储、索引均简单高效

支持微信公众号的全部历史发文爬取

支持微信公众号文章的阅读量、点赞量、赞赏量、评论量等数据的爬取

自带面向单个公众号的数据分析报告

利用Elasticsearch实现了全文检索,支持多种搜索和模式和排序模式,针对搜索结果提供了趋势分析图表

支持对公众号进行分组,可利用分组数据限定搜索范围

原创手机自动化操作方法,可实现爬虫无人监管

反爬措施简单粗暴

使用到的主要工具

语言:Python3.6

web框架:Flask / Flask-socketio / gevent

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

爬虫:Scrapy

存储:Mongodb / Redis

索引:Elasticsearch

功能展示

UI主界面

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

爬虫界面

设置界面

公众号历史文章列表

报告

搜索

加入社区

也许你属于:

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

回馈作者

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

github地址

(完)

看完本文有收获?请转发分享给更多人

关注「Python那些事」,做全栈开发工程师

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181209B06QUU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券