前言
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篇文章可能看到的还是比较局限,我们看看到底哪些文章更容易上榜。我们采取制作词云的方式,看看哪些关键词是最多的。
通过关键词,我们发现,可以将关键词分为两类:
- 简书钻相关:
- 比特币
- Fountain(简书合作伙伴)
- Poc
- 社区等
- 干货相关
- 文章
- 笔记
- 导图(这个是长期霸屏用户使用的title:思维导图实战派_汪志鹏)
初步我们可以分析出:我们结合热点以及自身的行业,是比较容易上榜的(没那么简单。。。)。
用户TOP10
如果只是知道文章title规律,我们这种普通人也是很难上榜的。接下来,我们再通过上榜的用户来分析,看看规律。首先是top10。
这些用户排行靠前,大家可以看看这些用户平时的一个分析作品,学习学习。
霸屏用户
我总共爬取了12天的数据,通过代码发现,很多用户12天都上榜了,这种霸屏用户真的是羡慕嫉妒恨。
'书院的夫子', 'linwood', '那個長江', '達士通人', '我是北崖君', '简书钻首席小管家', '宿醉弥生', '乐健君',
'思维导图实战派_汪志鹏', 'altcoin', '淡月6688', '临湖风徐徐道来', '小尘2016', '我是四海szw',
'中本葱老爷爷', 'weiblock', '蒋坤元', '且行且影', '荆白', '苍天鸭', '脸谱大叔', '肆月初陆',
'币圈Tesla', '无戒', '段维Tina', '紫萤石', '陈天宇123', 'Jianan嘉楠', '春木sky', '梦之蓝色',
'杀个程序猿祭天', '霖山', '雪球薅羊毛', 'Carykive', '木木大木木', '大琦有钻', '李砍柴', '杰夫1',
'写手圈', '静夜思007'
简书会员or非会员
在前文说到过,获取的钻石很大情况下取决你先拥有的简书钻,简书尊享会员就会拥有很多的简书钻,这也就导致上榜人数中,简书会员的比重占了一大部分。
总结
- 结合简书钻热点上榜高
- 你难道不考虑下简书尊享会员么?
- 自身的努力也很重要,坚持写作,分享干货,这就是简书。
网友评论