友情提醒:文末有....

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

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

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

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

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

一、我们想要哪些数据?

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

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

二、爬取的过程

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

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

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

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

最终一部分的代码如下:

import requestsimport pandas as pdimport timeheaders={    '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+数据。

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

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

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

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

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

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

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

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

四、知乎的数据可视化

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

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

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

再来看看具体的排名吧:

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

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

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

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

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

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

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

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

3、知乎的职业比例

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

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

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

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

总结

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

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

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

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

    一次完整的python数据分析流程是怎么样的? 使用python从网站抓取数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后对数据进行数据可视化分析. 可是熟悉的人应该知道,pyt ...

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

    一次完整的python数据分析流程是怎么样的? 使用python从网站抓取数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后对数据进行数据可视化分析. 可是熟悉的人应该知道,pyt ...

  3. 智慧树python数据分析与数据可视化_知到APP智慧树Python数据分析与数据可视化慕课答案...

    两个数相除,商是5,除数是20,被除数最大是______. "班级"一词最早的提出人是().A.赫尔巴特B.夸美纽斯C.埃拉斯莫斯D. 下列哪些项属于我国城市规划编制体系的范畴() ...

  4. python爬虫tableau数据分析_完美!Python爬招聘数据,Tableau做可视化分析

    原标题:完美!Python爬招聘数据,Tableau做可视化分析 交流群预热好久的可视化交互大屏来啦 1.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于&q ...

  5. 用Python采集财经数据信息并作可视化

    嗨嗨,大家好下午好,我是小圆 ~ 今天给大家分享一下,如何用python采集财经数据信息并作可视化 开发环境: 解释器版本: python 3.8 代码编辑器: pycharm 2021.2 requ ...

  6. python爬取景点数据看该去哪里玩——伊犁篇

    写在开头 六月的新疆美如天境,一直想去自驾游,在网易云课堂看到城市数据团大鹏老师讲的<用数据做攻略:找到一个城市最有趣的地方>传送门,于是尝试用python爬取景点数据,进行综合评价,然后 ...

  7. python爬取数据时报错:`aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sea

    python爬取数据时报错:aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sear ...

  8. Python:爬取数据出现response.status_code为403解决方法

    目录 前言 1. 原理 2. 代码 前言 出现403的返回结果 主要是有些服务器为了防止访问量过大,承受服务器的压力,或者是拒绝你的访问.服务器接收到这个信息,理应返回了这个403的信息 在前一块的代 ...

  9. python复杂网络点图可视化_数据分析:R与Python怎么选?

    作者介绍 知春里@伟仔 不知名数据科学家. 持续写<数据分析>和<数据产品>的系列文章,欢迎关注. 01 选R还是Python? "球鞋是买阿迪还是买耐克?" ...

最新文章

  1. 端到端加密(E2EE)技术分析:在移动应用中实现安全通信的利器
  2. 青龙羊毛——灰兔掌赚吹牛逼
  3. MSP430学习笔记6-动态数码管的显示
  4. scrollView的几个属性contentSize contentOffset contentInset
  5. Android - 基于Toolbar的Navigation Drawer(Material Design)
  6. 初步使用计算机说课,初步认识计算机说课稿
  7. 为什么计算机中0.2+0.1不等于0.3!?
  8. 前台setcookie之后从后台取出来_后台设置Cookie值,前台进行获取
  9. 氩焊机器人编程_谈一谈铝合金的脉冲MIG焊
  10. 【2021牛客暑期多校训练营9】E Eyjafjalla (倍增,dfs序,主席树)
  11. LaTex的book类型中,目录及chapter前自动插入空白页面
  12. InvokeRequired和Invoke
  13. 合并两个有序链表js
  14. 淘宝APP用户行为分析
  15. 汽车CAN总线思维导图
  16. oracle lob类型 删除,oracle中lob类型介绍
  17. 国产加密实际运用:使用SM3加盐存储密码,并且使用SM2进行登录认证
  18. threeJS导入FBX模型
  19. 如何在 Android 上自定义来电通知?带有代码示例
  20. 怎样用计算机求立方根的近似数,第三讲·立方根

热门文章

  1. dell屏幕亮度调节不了_?戴尔XPS13 7390笔电测评:10代酷睿加持,屏幕/散热/续航升级...
  2. python twisted框架_Python 基于Twisted框架的文件夹网络传输源码
  3. 计算机系统一级免费,计算机系统一级ms_office课件第一章.pptx
  4. rails 调用php函数_潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
  5. oracle 01035,oracle常用命令(一)
  6. linux命令的帮助信息,Linux查询命令帮助信息(知道)
  7. 述职答辩提问环节一般可以问些什么_内部资料,仅供阿里在职同事传阅:晋升答辩成功要诀...
  8. 安全云盘项目(二):2.1 基于libevent的C++线程池
  9. linux7编译mysql5.7安装,CentOS 7.4 使用源码包编译安装MySQL 5.7.20
  10. mybatis 多表查询-多对多