前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python玩转简书钻

Python玩转简书钻

作者头像
罗罗攀
发布2018-12-19 16:51:33
1.2K0
发布2018-12-19 16:51:33
举报

前言

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

爬虫

爬虫分析

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

文章排名代码
代码语言:javascript
复制
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)
用户排名代码

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

代码语言:javascript
复制
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天都上榜了,这种霸屏用户真的是羡慕嫉妒恨。

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

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

总结

  • 结合简书钻热点上榜高
  • 你难道不考虑下简书尊享会员么?
  • 自身的努力也很重要,坚持写作,分享干货,这就是简书。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 爬虫
    • 爬虫分析
      • 文章排名代码
        • 用户排名代码
        • 数据分析
          • 文章TOP10
            • 文章词云
              • 用户TOP10
                • 霸屏用户
                  • 简书会员or非会员
                  • 总结
                  相关产品与服务
                  对象存储
                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档