用Python 分析微信公众号

既然提到了公众号的数据分析,那必然少不了公众号的数据。

 

本次,以我一直关注的一个公众号「曹将」为例。

 

通过抓包软件Charles获取请求信息,得以获取公众号数据。

 

本次只获取公众号文章的部分信息。

 

对于文章的阅读量、点赞数、赞赏数。能力有限,选择放弃。

 

 

/ 01 / 获取分析

公众号的文章接口可以在电脑版的微信上获取。

 

用Python数据分析来薅一下微信公众号

进入历史消息,下滑页面。

 

用Python数据分析来薅一下微信公众号

在Charles中找到接口数据。

 

用Python数据分析来薅一下微信公众号

 

根据接口数据构造请求,便能获取公众号文章了!

 

/ 02 / 数据获取

主要是获取文章的标题、摘要、链接及发布时间。

 

具体代码如下。

 

import requests
import json
import time

def parse(__biz, uin, key, pass_ticket, appmsg_token=“”, offset=“0”):
“””
文章信息获取
“””

url = ‘?txe_eliforp/pm/moc.qq.nixiew.pm//:sptth’[::-1]
headers = {
“User-Agent”“Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400”,
}
params = {
“action”“getmsg”,
“__biz”: __biz,
“f”“json”,
“offset”: str(offset),
“count”“10”,
“is_ok”“1”,
“scene”“124”,
“uin”: uin,
“key”: key,
“pass_ticket”: pass_ticket,
“wxtoken”“”,
“appmsg_token”: appmsg_token,
“x5”“0”,
}

res = requests.get(url, headers=headers, params=params, timeout=3)
data = json.loads(res.text)
# 获取信息列表
msg_list = eval(data.get(“general_msg_list”)).get(“list”, [])
for i in msg_list:
# 去除文字链接
try:
# 文章标题
title = i[“app_msg_ext_info”][“title”].replace(‘,’‘,’)
# 文章摘要
digest = i[“app_msg_ext_info”][“digest”].replace(‘,’‘,’)
# 文章链接
url = i[“app_msg_ext_info”][“content_url”].replace(“\”“”).replace(“http”“https”)
# 文章发布时间
date = i[“comm_msg_info”][“datetime”]
print(title, digest, url, date)
with open(‘article.csv’‘a’as f:
f.write(title + ‘,’ + digest + ‘,’ + url + ‘,’ + str(date) + ‘n’)
except:
pass
# 判断是否可继续翻页 1-可以翻页  0-到底了
if 1 == data.get(“can_msg_continue”0):
time.sleep(3)
parse(__biz, uin, key, pass_ticket, appmsg_token, data[“next_offset”])
else:
print(“爬取完毕”)

if __name__ == ‘__main__’:
# 请求参数
__biz = ‘你的参数’
uin = ‘你的参数’
key = ‘你的参数’
pass_ticket = ‘你的参数’
# 解析函数
parse(__biz, uin, key, pass_ticket, appmsg_token=“”, offset=“0”)


 

最后成功获取文章的信息。

用Python数据分析来薅一下微信公众号

接下来根据文章的标题、摘要及发布时间来做一些分析。

 

文章链接主要是用于生成PDF。

 

这个放到下一篇文章再说。

 

 

/ 03 /  数据可视化

 

01 每年发文数量

 

用Python数据分析来薅一下微信公众号

 

2016年数量最多,17年和18年下降趋势明显

 

这一点曹将也曾提过,工作变得越来越繁忙。

 

为此,在18年的时候还招了几个助理。

 

我肯定是没那实力去当小助理,还是老老实实写自己的代码吧…

 

02 每月发文数量

 

用Python数据分析来薅一下微信公众号

 

这里是统计了所有年份的数据,下面还会有一个按年份来展示的图表。

 

其中12月最多,不知是为何。

 

难不成曹将天天写年终总结报告的PPT教程吗,哈哈。

 

03 每年各月发文数量

 

用Python数据分析来薅一下微信公众号

可以明显看出15年和16年居于17年和18年之上。

 

这也与第一张图相对应。

 

其中15年的12月份发布了30篇文章,也就意味着曹将天天在写文章。

 

三天一更的我,着实有点惭愧。

04 公众号发文时间

 

用Python数据分析来薅一下微信公众号

 

发文时间主要集中在晚上,早上7点也有一段小高峰。

 

根据这一两年的情况,大多都在晚上发布。

 

所以猜测7点发文,应该是前几年的数据。

05 文章标题长度

 

用Python数据分析来薅一下微信公众号

标题对于文章的影响可以说蛮大的。

 

这里只研究一下曹将的文章标题长度,主要集中在10-20字之间。

 

也给自己日后写文章标题作为一个参考。

 

讲真,曹将起的标题真不错,值得学习。

 

06 标题和摘要词云图

 

用Python数据分析来薅一下微信公众号

用Python数据分析来薅一下微信公众号

 

这里便能看出曹将公众号到底在讲些什么。

 

之前看过一篇分析曹将和邵云蛟的文章。

 

里面说曹将的文章偏职场,邵云蛟则更偏向于PPT。

 

这话说的一点毛病也没有。

未经允许不得转载:996ICU » 用Python 分析微信公众号

赞 (0) 打赏