python编写统计选票的程序_使用python编写微信公众号发稿统计程序

近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题、时间、作者等。

首先考虑查看公众号后台有无统计功能,看到的界面如下:

每页只显示7天的消息,且没有部门作者信息。再看另一界面:

只统计总体的发稿数量,阅读量等信息,没有具体的稿件信息。

再考虑通过微信前端,能否使用查看历史消息的功能,获得所有稿件。经尝试,网页版微信无法打开历史消息,手机端和PC端程序可以打开历史消息,但无法进行复制操作。而且历史消息也不能获得全部信息,只有稿件标题和发表时间,并没有作者信息。

再进后台逛一逛,没发现有信息比较全面的地方,只是在“素材管理”的“图文消息”下,还能列出比较多的消息,但同样看不到部门作者信息。

好在后台都是在浏览器中去打开,可以查看一下页面的源代码。这一看,有了意外的收获。

这里有标题、时间和部门作者信息。但这信息太乱了,怎么把它提取出来呢?

笔者近来一直研究创客、机器人和人工智能,这些领域都以Python语言为主要开发工具,我也学了它,正好在此实践一下。

编程之前,我们还是先把数据捋一下,搞清楚。

首先,这个页面并不包含全部的历史消息,而是分页显示的。网页地址是这样的:https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=10&......

begin表示第几页,count表示每页含有消息数量。为了减少翻页次数,我尝试将count数量加大到100,结果发现返回的页面并没有包含100条消息,只有50条消息。经验证,count最大设置为50时,返回的页面包含消息数量和设置的数值是一值的。这样我们可以分别使用…begin=0&count=50&…,…begin=50&count=50&…,…begin=100&count=50&…等地址来获取每页50条消息,直至取到所需要统计的起始日期为止。

接着,分析页面数据的结构,整理如下:

这样数据的结构清晰多了,这儿整理出来只是为了让大家能更容易看清,只要结构不变,怎么乱我们的程序都能识别。最后就是利用Python编写程序提取所需信息了。经过反复调试,程序终于实现了功能。但目前还只是个半成品--未集成微信公众号登录及相关页面下载的功能。需手动登录后台并进入相关页面保存相关网页,然后用此程序提取信息。因微信登录必须扫码完成,所以手动操作是不可避免的,在后续的版本中,将提取人工扫码登录后的HTTP头部参数,传递到程序中,实现网页的自动下载,提高自动化程度。关注“民族中专创新工作室”,发送“微信统计”,可获取源码下载地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值