点滴中成长收藏夹万水千山总是情简钻简贝

排行榜简书钻分配统计

2019-01-25  本文已影响546人  小小亮FLY

简书Poc机制采用了齐夫定律分配的方式,下面统计一下排行榜文章简书钻的分配。

Linus Torvalds 曾说Talk is cheap,show me the code,所以先上代码。

#关键代码段
def write_ranking_to_csv(url, file_name):
    fw = open(str(file_name), 'w+', encoding='utf-8', newline='')
    writer = csv.writer(fw)
    rank_data = requests.get(url, headers=headers)
    json_bean = json.loads(rank_data.text)
    notes = json_bean['notes']
    for note in notes:
        title = note['title']
        author_nickname = note['author_nickname']
        fp = note['fp']
        author_fp = note['author_fp']
        voter_fp = note['voter_fp']
        writer.writerow([title, author_nickname, fp, author_fp, voter_fp])
    fw.close()

def get_ranking_data():
    ranking_url = "https://www.jianshu.com/asimov/fp_rankings/voter_notes?date={}"
    for date in range(20190101, 20190125):
        scrap_url = ranking_url.format(date)
        write_ranking_to_csv(scrap_url, str(date) + '.csv')
获取到JSON格式数据
{
    "fp": 40000000,
    "author_fp": 30000000,
    "voter_fp": 10000000,
    "date": "20190124",
    "first_day": false,
    "last_day": true,
    "notes": [{
        "slug": "832a04507254",
        "title": "FTN征文大赛|作为一个纯粹写字的人,怎么在简书的通证化改革中找到自己的位置?",
        "author_nickname": "李砍柴",
        "author_avatar": "http://upload.jianshu.io/users/upload_avatars/1439852/4ad46b25-0117-4294-be90-91be19a728f1.jpg",
        "fp": 2397960,
        "author_fp": 1798528,
        "voter_fp": 599432
    }, {
        "slug": "fd292ec0b992",
        "title": "FTN征文大赛|Fountain白皮书扫盲帖(一)区块链生态系统是啥",
        "author_nickname": "罗锦书",
        "author_avatar": "http://upload.jianshu.io/users/upload_avatars/10294566/12b39ddf-f87d-4558-914d-866a7db97bd6.jpg",
        "fp": 1199451,
        "author_fp": 899623,
        "voter_fp": 299828
    }, {
        "slug": "c5316deea765",
        "title": "头号玩家Ulord共识主节点竞选宣言:爬虫、文胸和主节点的故事",
        "author_nickname": "币布斯",
        "author_avatar": "http://upload.jianshu.io/users/upload_avatars/12584904/7f5f1f94-5852-4858-ab92-0a7a35be73d4.png",
        "fp": 799967,
        "author_fp": 599989,
        "voter_fp": 199978
    },....(略)

主要流程:抓取榜单数据(上面json格式数据),解析后存储到csv文件中,然后再做各种展示效果图。

上一篇 下一篇

猜你喜欢

热点阅读