既然提到了公众号的数据分析,那必然少不了公众号的数据。程序员
本次,以我一直关注的一个公众号「曹将」为例。算法
经过抓包软件Charles获取请求信息,得以获取公众号数据。json
本次只获取公众号文章的部分信息。微信
对于文章的阅读量、点赞数、赞扬数。能力有限,选择放弃。app
/ 01 / 获取分析ide
公众号的文章接口能够在电脑版的微信上获取。函数
进入历史消息,下滑页面。学习
在Charles中找到接口数据。ui
根据接口数据构造请求,便能获取公众号文章了!url
/ 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")
最后成功获取文章的信息。
接下来根据文章的标题、摘要及发布时间来作一些分析。
文章连接主要是用于生成PDF。
这个放到下一篇文章再说。
/ 03 / 数据可视化
01 每一年发文数量
2016年数量最多,17年和18年降低趋势明显。
这一点曹将也曾提过,工做变得愈来愈繁忙。
为此,在18年的时候还招了几个助理。
我确定是没那实力去当小助理,仍是老老实实写本身的代码吧...
02 每个月发文数量
这里是统计了全部年份的数据,下面还会有一个按年份来展现的图表。
其中12月最多,不知是为什么。
难不成曹将每天写年终总结报告的PPT教程吗,哈哈。
03 每一年各月发文数量
能够明显看出15年和16年居于17年和18年之上。
这也与第一张图相对应。
其中15年的12月份发布了30篇文章,也就意味着曹将每天在写文章。
三天一更的我,着实有点惭愧。
04 公众号发文时间
发文时间主要集中在晚上,早上7点也有一段小高峰。
根据这一两年的状况,大多都在晚上发布。
因此猜想7点发文,应该是前几年的数据。
05 文章标题长度
标题对于文章的影响能够说蛮大的。
这里只研究一下曹将的文章标题长度,主要集中在10-20字之间。
也给本身往后写文章标题做为一个参考。
讲真,曹将起的标题真不错,值得学习。
06 标题和摘要词云图
这里便能看出曹将公众号到底在讲些什么。
以前看过一篇分析曹将和邵云蛟的文章。
里面说曹将的文章偏职场,邵云蛟则更偏向于PPT。
这话说的一点毛病也没有。
/ 04 / 总结
本篇文章未完待续,完整代码下期再见。
毕竟文章连接获取了,那么一定须要将其存到本地学习。
因此下一期讲一下如何将网页存为PDF。
另外圈内的大佬,文章也很不错,你们也能够本身动手。
好比「程序员小灰」的漫画,「五分钟学算法」的趣味算法。
思路有了,剩下的就靠你们本身了。
万水千山老是情,点个「在看」行不行。