众所周知,脉脉职言圈是完全匿名的,里面各种吐槽、八卦、骗人的、钓鱼的等等。如何让职言变得更加透明?下面说一下我的方式

源码:https://github.com/ColdDay/maimai-analysis

背景

由于好奇心,我想知道某条职言的作者在当前圈儿里都发布了哪些职言,参与了哪些职言,把他的轨迹暴漏出来,可以我才有根据,去分析或者判断他说的对不对,或者他喜欢发布什么内容

于是看了脉脉PC官网,每条个职言用户都有唯一ID,而且这个ID是对外公开的,通过接口的批量爬取,用职言用户ID跟职言ID关联,完全能达到我想要的目的

关键接口

A接口:获取关键词下面的职言

获取关键词下面100条职言信息

https://maimai.cn/search/gossips?query=阿里&limit=20&offset=20&searchTokens=[“阿里”]&highlight=true&sortby=time&jsononly=1

拿到如下关键信息

text:职言内容

encode_id:职言唯一标识

{
    result: "ok",
    data: {
        gossips: [
            {
                gid: 25646307,
                gossip: {
                    username: "方证",
                    status: 1,
                    major: 0,
                    total_cnt: 4,
                    text: "主管p9,带几个人,二级主管p10,管几十个人,奖金股票分配是由p9还p10定? 阿里 蚂蚁",
                    profession: 0,
                    is_freeze: 0,
                    egid: "2fcf6b62730111eaa3ec801844e50190",
                    unlikes: 0,
                    likes: 0,
                    summary: "主管p9,带几个人,二级主管p10,管几十个人,奖金股票分配是由p9还p10定? 阿里 蚂蚁",
                    id: 25646307,
                    crtime: "2020-03-31 11:39:12",
                    encode_id: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjU2NDYzMDcsImlhdCI6MTU4NTYyNjU4MH0.DFpbNYLKccm9Kpphv7QNPPe4JgJRfTfzwXRp7CjZEtc",
                    crtime_string: "2020-03-31 11:39:12",
                    author: "发布者:方证",
                    search_order: 1,
                    search_qs: "w=%E9%98%BF%E9%87%8C&lim=10&o=0&uid=229818912&render=search&excerpts=true&sortby=time&sid=a2de90&frm=&ptype=",
                    avatar: "http://i9.taou.com/maimai/p/aurl/v3/avatar_kaifa.png"
                }
            }
        ]
    }
}

但是职言用户ID在这个接口没有,这是最讨厌的,还要再发一个接口去获取职言用户ID

B接口:获取职言用户ID

https://maimai.cn/web/gossip_detail?encode_id=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjU2MzQxOTAsImlhdCI6MTU4NTYyNjkxM30.1Pz32CPCDPlYfUKVHJxxTspXHQDOI9xBHhrJCQWpn7g

通过encode_id可以获取如下信息

这个接口获取的是服务端渲染的html,解析一下才能获取的职言用户ID,share_data中就可以获取

C接口:获取职言对应评论信息

https://maimai.cn/sdk/web/gossip/getcmts?gid=25279773&egid=8ad1a3f45ace11ea9314525400abc5d8&page=1&count=50&hotcmts_limit_count=1&u=229818912&channel=www&version=4.0.0&_csrf=VfIgGP43-WpwgSQhAjESV4wmSDVfnge9kSGQ&_csrf_token=EeLc38tc-poH6xmeoPiQ-G8Yc0mYRe3wswso&access_token=1.7985bfa58af06806e171a5285e6d257c

这个接口需要的参数比较多,但是需要的信息都可以在B接口中的share_data中拿到,接口返回当前职言下的评论信息,把count参数改为1000即可获取所有评论数据,评论单条数据如下

关键字段

mmid:职言用户唯一ID

text:评论内容

name:职言用户昵称

real: 0
major: 255
likes: 0
mmid: "z/rEswDpd2g"
career: ""
text: "春天在哪里 春天在哪里"
reply_text: ""
profession: 255
is_top: 0
mylike: 0
rich_text: "<dref t=-1 f=13.5 cs=#191919>春天在哪里 春天在哪里</dref>"
prefix: ""
name_color: "#ffefa932"
avatar: "https://i9.taou.com/maimai/c/offlogo/2cb077ad095fe29d41a2722ced1bf3a4.png"
judge: 1
lz: 0
id: 41907432
gossip_uid: "z/rEswDpd2g"
name: "北京纯粹旅行有限公司员工"

组合拳

通过A接口获取N条职言

遍历N条职言数据,获取职言用户ID

获取N条职言下的评论

通过职言用户ID和职言ID进行关联,按照用户去汇总这些数据,每个总共发表了多少职言,参与了哪些评论等

最终得到如下

点开某个职言用户,可以看他的具体内容,如他参与的职言都有哪些,都发表了什么评论

再比如,你看到A用户在X公司圈发布了一条职言,复制一下他的ID,那就可以通过这种方式看到他所有在X公司圈下的轨迹,你品,你细细品

最后我其实是做了一个chrome插件,但是批量查询脉脉接口,可能会被永久封号,最后我下掉了,所以不建议你去尝试,我被封了2个号了

以上

仅用于个人学习


--------------

原创文章出自 木法传,如转载请注明本文链接:https://www.mofazhuan.com/451.html

--------------