公众号后台有丰富的数据统计,但是可能依然没有我想要的统计指标。比如,我公众号粉丝量虽然不高,但是阅读率却普遍很高,那我能不能根据我公众号每篇文章的阅读率的变化情况,画一张散点图,来展现我的公众号运营成果呢?
登陆后台发现,公众号每篇文章发送情况的左侧,点击发送完毕按钮,可以看到送达人数,这是公众号发某篇文章前的粉丝数,而标题下方有阅读数。通过爬虫,依次提取每篇文章的送达人数和阅读数,根据公式:阅读率=阅读数/送达人数,就可以计算出每篇文章的阅读率了。
思路一:在进行数据可视化的时候,用该篇文章的当前粉丝数作为横轴,用该篇文章的阅读率作为纵轴,就可以画出每篇文章的阅读率分布。然后加上一条普通公众号的平均阅读率辅助线,就可以展现出本公众号的阅读率和一般公众号相比是什么水平。
思路二:还有一种思路,对文章阅读率从小到大依次进行排序,横轴为文章编号,纵轴为阅读率,这样可以画一张帕累托累进图,加上一条普通公众号平均阅读率的辅助线,就可以直观看出有多大比例的文章高于平均阅读率,并且可以让读者忽略粉丝数这条信息。
在散点图的基础上,还可以再加上文章阅读量大小,用散点的大小来表示,但是考虑到我有一百篇文章代表一百个点,有些文章的阅读率非常高,用散点大小表示的话,不便阅读,于是放弃这个思路。
(1)登陆到公众号后台主页。
这一步我在第一个爬取公众号文章url链接生成pdf文档的项目中已经实现过,直接套用过来就可以。
(2)定义一个抓取送达人数和阅读数的动作。
这是个难点。
(3)进行循环,依次抓取每一页的7条文章数据,写入一个字典数据里。
公众号翻页的for循环在第一个爬取公众号文章的项目中也已经实现过了,本次稍作改编套用即可。
(4)将数据存入csv文件。
这个动作之前也实现过。
(5)通过pandas导入csv文件里的数据,并进行数据清洗,如计算阅读率。
(6)通过matplotlib等库,根据清洗好的数据,绘图。
实际实现起来,遇到了诸多问题,我们一个个解决,一步步推进。
导入模块
我后来导入了以下这些模块,并不是每个都用上了,并不是开始就想到要导入这些,而是在实现程序的过程中,慢慢发现需要导入某个模块。
登陆公众号后台
Python从放弃到入门那一篇,已经讲过了。构造了一个登陆的函数,之后需要调用登陆函数,传入参数为公众号的用户名和密码。