前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信公众号数据分析。

微信公众号数据分析。

作者头像
张俊红
发布2019-05-14 11:21:17
1.3K0
发布2019-05-14 11:21:17
举报
文章被收录于专栏:张俊红

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

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

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

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

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

/ 01 / 获取分析

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

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

在Charles中找到接口数据。

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

/ 02 / 数据获取

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

具体代码如下。

代码语言:javascript
复制
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。

另外圈内的大佬,文章也很不错,大家也可以自己动手。

比如「程序员小灰」的漫画,「五分钟学算法」的趣味算法。

思路有了,剩下的就靠大家自己了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档