Python玩转简书钻

作者: 罗罗攀 | 来源:发表于2018-11-27 16:28 被阅读72次

前言

2018年11月15号,简书迎来大变革,取消了以往的积分制度,换为去中心化的简书钻,每日发放一万简书钻。首先,简书给出了获取钻石的途径:写文点赞,与以往的阅读,评论,点赞,关注,写作都能获取积分(不同操作获取的积分不同)不一样,现在的途径更加简单和方便。其次,也说明了获取钻石的多少取决于用户的投票(钻石越多投票权重越大)。
简书每天都会公布前一天的排名,通过编写代码,获取20181115到20181126的数据,并进行分析。

爬虫

爬虫分析

简书钻的排行采用了异步加载,我们通过找包来获取数据,这里分为文章排名和用户排名,我们单独编写代码和单独存储。

文章排名代码
import requests
import json
import csv
import time

headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}

def get_info(url):
    res = requests.get(url,headers=headers)
    # print(res.text)
    json_data = json.loads(res.text)
    notes = json_data['notes']
    for note in notes:
        title = note['title']
        author_nickname = note['author_nickname']
        author_fp = note['author_fp']
        voter_fp = note['voter_fp']
        fp = note['fp']
        print(title,author_nickname,author_fp,voter_fp,fp)
        writer.writerow([title,author_nickname,author_fp,voter_fp,fp])

if __name__ == '__main__':
    fp = open('article.csv','w+',encoding='utf-8')
    writer = csv.writer(fp)
    writer.writerow(['title','author_nickname','author_fp','voter_fp','fp'])
    urls = ['https://www.jianshu.com/asimov/fp_rankings/voter_notes?date={}'.format(i) for i in range(20181115,20181127)]
    for url in urls:
        get_info(url)
        time.sleep(1)
用户排名代码

这里除了获取排名外,还对用户是否为简书会员(这个在分析中解释)进行了判断。

import requests
import json
import csv
import time
from lxml import etree

headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}

def get_info(url):
    path = 'https://www.jianshu.com/u/'
    res = requests.get(url,headers=headers)
    # print(res.text)
    json_data = json.loads(res.text)
    users = json_data['users']
    for user in users:
        slug = user['slug']
        author_url = path + slug
        style = jug_vip(author_url)
        author_nickname = user['nickname']
        author_fp = user['author_fp']
        voter_fp = user['voter_fp']
        fp = user['fp']
        print(author_nickname,author_url,author_fp,voter_fp,fp,style)
        writer.writerow([author_nickname,author_url,author_fp,voter_fp,fp,style])

def jug_vip(url):
    res = requests.get(url, headers=headers)
    html = etree.HTML(res.text)
    infos = html.xpath('//ul[@class="list user-dynamic"]/li')
    str = ''
    for info in infos:
        jug = info.xpath('string(.)').strip()
        str = str + jug
    if str.find('简书尊享会员') != -1:
        return '简书尊享会员'
    elif str.find('简书会员') != -1:
        return '简书会员'
    else:
        return '非会员'

if __name__ == '__main__':
    fp = open('user.csv','w+',encoding='utf-8')
    writer = csv.writer(fp)
    writer.writerow(['author_nickname','author_url','author_fp','voter_fp','fp','style'])
    urls = ['https://www.jianshu.com/asimov/fp_rankings/voter_users?date={}'.format(i) for i in range(20181115,20181127)]
    for url in urls:
        get_info(url)
        time.sleep(1)

数据分析

文章TOP10

首先,我们看看获取简书钻最多的前10篇文章。

文章涉及的内容,大部分都是和简书钻的分享有关,因为简书钻是最近才开始运营的,跟着这个热点走,曝光率与投票也会相应的多一些。

文章词云

10篇文章可能看到的还是比较局限,我们看看到底哪些文章更容易上榜。我们采取制作词云的方式,看看哪些关键词是最多的。

通过关键词,我们发现,可以将关键词分为两类:

  1. 简书钻相关:
  • 比特币
  • Fountain(简书合作伙伴)
  • Poc
  • 社区等
  1. 干货相关
  • 文章
  • 笔记
  • 导图(这个是长期霸屏用户使用的title:思维导图实战派_汪志鹏)
    初步我们可以分析出:我们结合热点以及自身的行业,是比较容易上榜的(没那么简单。。。)。
用户TOP10

如果只是知道文章title规律,我们这种普通人也是很难上榜的。接下来,我们再通过上榜的用户来分析,看看规律。首先是top10。

这些用户排行靠前,大家可以看看这些用户平时的一个分析作品,学习学习。

霸屏用户

我总共爬取了12天的数据,通过代码发现,很多用户12天都上榜了,这种霸屏用户真的是羡慕嫉妒恨。

'书院的夫子', 'linwood', '那個長江', '達士通人', '我是北崖君', '简书钻首席小管家', '宿醉弥生', '乐健君',
       '思维导图实战派_汪志鹏', 'altcoin', '淡月6688', '临湖风徐徐道来', '小尘2016', '我是四海szw',
       '中本葱老爷爷', 'weiblock', '蒋坤元', '且行且影', '荆白', '苍天鸭', '脸谱大叔', '肆月初陆',
       '币圈Tesla', '无戒', '段维Tina', '紫萤石', '陈天宇123', 'Jianan嘉楠', '春木sky', '梦之蓝色',
       '杀个程序猿祭天', '霖山', '雪球薅羊毛', 'Carykive', '木木大木木', '大琦有钻', '李砍柴', '杰夫1',
       '写手圈', '静夜思007'
简书会员or非会员

在前文说到过,获取的钻石很大情况下取决你先拥有的简书钻,简书尊享会员就会拥有很多的简书钻,这也就导致上榜人数中,简书会员的比重占了一大部分。

总结

  • 结合简书钻热点上榜高
  • 你难道不考虑下简书尊享会员么?
  • 自身的努力也很重要,坚持写作,分享干货,这就是简书。

相关文章

网友评论

  • 李砍柴:这个数据分析很有用!谢谢分享!
    罗罗攀:@李砍柴 谢谢大佬~

本文标题:Python玩转简书钻

本文链接:https://www.haomeiwen.com/subject/kjggqqtx.html