zoukankan      html  css  js  c++  java
  • 知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    一次完整的python数据分析流程是怎么样的?

    使用python从网站抓取数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后对数据进行数据可视化分析。

    可是熟悉的人应该知道,python爬取简单,但是分析起来是很困难的,SQL语句、Pandas和Matplotlib这些十分繁琐,一般人也不会。

    于是我想到了用一种更简单的方式进行数据分析,那就是python爬取+BI分析。什么是BI就不用我多做介绍了吧,python强大的数据获取能力,配合敏捷BI简单快捷的数据可视化操作,分析效果那肯定是杠杠的!

    那这次我们就来看看“人均985,年薪百万”的知乎背后,到底有什么秘密?话不多说,开爬!

    一、我们想要哪些数据?

    知乎用户的学校和公司肯定是首当其冲的,我想看看到底这些人是编的还是真的哈哈哈。

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    其次就是性别,职业,地理位置,活跃程度等,统统扒个遍。

    二、爬取的过程

    知乎现在改用https请求了,数据加密,但是问题不大,重要的是网页数据改动了,而且在请求时后台会对爬虫做一些判断,因此在每次请求是都需要加上request header,尽可能接近浏览器请求的样子。

    得到列表页的源码后,你可以从其中获取到每个问题的链接:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    每页有20个问题,所以你可以获得到20个问题的链接,之后就是对每个问题的处理:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    能实现到这一步,剩下的就是循环、判断和一些细节了。

    最终一部分的代码如下:

    import requests
    import pandas as pd
    import time
    headers={
        'authorization':'',#此处填写你自己的身份验证信息
        'User-Agent':''#此处填写你自己浏览器的User-Agent
    }
    user_data = []
    def get_user_data(page):
        for i in range(page):#翻页
            url = 'https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={}&limit=20'.format(i*20)
            response = requests.get(url, headers=headers).json()['data']
            user_data.extend(response) #把response数据添加进user_data
            print('正在爬取第%s页' % str(i+1))
            time.sleep(1) #设置爬取网页的时间间隔为1秒
    
    if __name__ == '__main__':
        get_user_data(10)
        df = pd.DataFrame.from_dict(user_data)#以字典保存数据
        df.to_csv('zhihu.csv',encoding='utf_8_sig')#保存到用户名为zhihu的csv文件中,encoding='utf_8_sig'参数是为了解决中文乱码的问题
        print(df)
    
    Python代码中我并没有采取线程池,而是采用了开起10个main()方法去抓取,即10个进程,历时4个小时,爬取了57w+数据。

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    三、用BI进行数据可视化分析

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    现在我们已经进行到最后一步用BI开始做数据可视化了,揭秘知乎的时刻就要到来了。

    市面上的BI工具有很多种,国外的Tableau和国内的FineBI都是BI领域的领先者,但早就听说Tableau适合有基础的数据分析师,对于小白很不友好。再加上我前天偶然间看到了IDC的报告,发现帆软的市场占有率是第一,为了避免回炉重做,我选择了FineBI这款敏捷工具,事实证明,我的选择是对的。

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    首先在官网下载FineBI,虽说是企业级的数据分析平台,但是它对于个人是永久免费的,文末给大家准备了下载链接~

    然后直接通过FineBI提供的数据配置端的功能,添加SQL数据集(或者直接添加表也行),查看和验证刚刚爬取并且入库的数据是否已经真正成功入库到MySQL中了。

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    忘了说,FineBI的一大特点就是自助分析。什么叫自助分析?就是我自己拖拖拽拽数据,就可以有和Matplotlib一样的效果,你也许还会想到Excel,但一般几万行的数据以上,excel基本就无能为力,很卡。但是FineBI处理大数据依然可以行云流水,效率高几十倍上百倍都有可能。

    同时VBA有个致命弱点是,它只能基于excel内部进行自动化,其他方面就没办法了。

    我在写这篇文章之前,分析过房价和销售额,特地把它做成了动图供大家参考:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    四、知乎的数据可视化

    FineBI的仪表板可自行拖拽调整组件位置,配上多种类型的柱状图、饼图、雷达图,数据可视化就是这么轻而易举,只有你想不到,没有它做不到。

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    1、哪个城市的知乎用户最多?

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    从云词图中我们可以看出,城市越繁华,知乎的用户人数就越多(文字越大,比重越大)。所以也可以看见北上广深四个一线城市处于最中心,新一线城市紧随其后,换句话说:知乎的人大部分在一线城市或者新一线城市,果然是见多识广!

    再来看看具体的排名吧:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    杭州处在第三名了,果然互联网的发源之地之一不是吹的,阿里网易起到了很大的作用,为什么这么说?等你看到职业就明白了。

    2、他们都是哪些学校的?

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    你看看,你看看,这学历真的很高,谁说人均985都是吹的?

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    不过也不奇怪,知乎主打的就是高知识份子的聚集地,而且学生比起上班族,有更多的时间玩手机。

    既然分析到学校了,我们肯定要来看看各个高校上玩知乎的男女比例:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    不用我说你们就可以猜到,蓝色代表的是男生,女孩子要么在逛街,要么就在学习,低头玩手机的肯定是男孩子哈哈哈(虽然我也是男的)。

    我们再来看看各地区有哪些高校是知乎重度用户,颜色越深代表该学校的知乎用户越多:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    别说了,知乎人均985实锤了,我流下了羡慕的泪水,我想请问同学,是怎么做到玩和学习同时兼顾的?你如果教教我,我高考距离清华的录取分数线可能就更近一点了....

    3、知乎的职业比例

    除去学生之后,我们发现知乎的人都是....

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    产品经理最多,这是最近几年最火爆的职业吧,不过话说你的文档写好了?需求画好了?是不是知乎的页面交互你不太满意?不然还不去干活?

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    可以看到,除了一些互联网公司的常见职位外,教师和律师用户在知乎中也占据不小的比重。

    我们再用一张热力图来观察知乎主流职业(前四名)在各个地区的分布情况,颜色越深,代表该职业在该地区的人数越多:

    知乎人均985?Python爬50W数据,BI做出可视化后,我有了答案

    总结

    我分析了这么多,不是想告诉你们知乎的用户到底怎么怎么样,而是想说如果想做数据分析,FineBI确实是一款很好用的工具,对个人和对企业都是这样。

    当然了,上面才只是FineBI的冰山一角,更多的东西还得你们自己去探索。

  • 相关阅读:
    'Undefined symbols for architecture i386,clang: error: linker command failed with exit code 1
    The codesign tool requires there only be one 解决办法
    XCode iOS project only shows “My Mac 64bit” but not simulator or device
    Provisioning profile XXXX can't be found 的解决办法
    UIView 中的控件事件穿透 Passthrough 的实现
    Xcode4.5出现时的OC新语法
    xcode 快捷键(持续更新)
    打越狱包
    php缓存与加速分析与汇总
    浏览器的判断
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13325523.html
Copyright © 2011-2022 走看看