一次残缺的 python 数据分析流程是怎么样的?
应用 python 从网站抓取数据,并将这些数据保留到 SQLite 数据库中,而后对数据进行荡涤,最初对数据进行数据可视化剖析。
可是相熟的人应该晓得,python 爬取简略,然而剖析起来是很艰难的,SQL 语句、Pandas 和 Matplotlib 这些非常繁琐,个别人也不会。
于是我想到了用一种更简略的形式进行数据分析,那就是python 爬取 +BI 剖析。什么是 BI 就不必我多做介绍了吧,python 弱小的数据获取能力,配合麻利 BI 简略快捷的数据可视化操作,剖析成果那必定是杠杠的!
那这次咱们就来看看“人均 985,年薪百万”的知乎背地,到底有什么机密?话不多说,开爬!
一、咱们想要哪些数据?
知乎用户的学校和公司必定是首当其冲的,我想看看到底这些人是编的还是真的哈哈哈。
其次就是性别,职业,地理位置,沉闷水平等,通通扒个遍。
二、爬取的过程
知乎当初改用 https 申请了,数据加密,然而问题不大,重要的是网页数据改变了,而且在申请时后盾会对爬虫做一些判断,因而在每次申请是都须要加上 request header,尽可能靠近浏览器申请的样子。
失去列表页的源码后,你能够从其中获取到每个问题的链接:
每页有 20 个问题,所以你能够取得到 20 个问题的链接,之后就是对每个问题的解决:
能实现到这一步,剩下的就是循环、判断和一些细节了。
最终一部分的代码如下:
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+ 数据。
三、用 BI 进行数据可视化剖析
当初咱们曾经进行到最初一步用 BI 开始做数据可视化了,揭秘知乎的时刻就要到来了。
市面上的 BI 工具有很多种,国外的 Tableau 和国内的 FineBI 都是 BI 畛域的领先者,但早就据说 Tableau 适宜有根底的数据分析师,对于小白很不敌对。再加上我前天偶然间看到了 IDC 的报告,发现帆软的市场占有率是第一,为了防止回炉重做,我抉择了 FineBI 这款麻利工具,事实证明,我的抉择是对的。
首先在官网下载 FineBI,虽说是企业级的数据分析平台,然而它对于集体是永恒收费的,文末给大家筹备了下载链接~
而后间接通过 FineBI 提供的数据配置端的性能,增加 SQL 数据集(或者间接增加表也行),查看和验证刚刚爬取并且入库的数据是否曾经真正胜利入库到 MySQL 中了。
忘了说,FineBI 的一大特点就是自助剖析。什么叫自助剖析?就是我本人拖拖拽拽数据,就能够有和 Matplotlib 一样的成果,你兴许还会想到 Excel,但个别几万行的数据以上,excel 根本就无能为力,很卡。然而 FineBI 解决大数据仍然能够行云流水,效率高几十倍上百倍都有可能。
同时 VBA 有个致命弱点是,它只能基于 excel 外部进行自动化,其余方面就没方法了。
我在写这篇文章之前,剖析过房价和销售额,顺便把它做成了动图供大家参考:
** 举荐:020 继续更新,精品小圈子每日都有新内容,干货浓度极高。
牢固人脉、探讨技术 你想要的这里都有!
领先入群,跑赢同龄人!(入群无需任何费用)
点击此处,与 Python 开发大牛一起交流学习。
群号:745895701
申请即送:
Python 软件安装包,Python 实战教程
材料收费支付,包含 Python 根底学习、进阶学习、爬虫、人工智能、自动化运维、自动化测试等 **
四、知乎的数据可视化
FineBI 的仪表板可自行拖拽调整组件地位,配上多种类型的柱状图、饼图、雷达图,数据可视化就是这么轻而易举,只有你想不到,没有它做不到。
1、哪个城市的知乎用户最多?
从云词图中咱们能够看出,城市越热闹,知乎的用户人数就越多(文字越大,比重越大)。所以也能够看见北上广深四个一线城市处于最核心,新一线城市紧随其后,换句话说:知乎的人大部分在一线城市或者新一线城市,果然是见多识广!
再来看看具体的排名吧:
杭州处在第三名了,果然互联网的发祥之地之一不是吹的,阿里网易起到了很大的作用,为什么这么说?等你看到职业就明确了。
2、他们都是哪些学校的?
你看看,你看看,这学历真的很高,谁说人均 985 都是吹的?
不过也不奇怪,知乎主打的就是高常识份子的聚集地,而且学生比起上班族,有更多的工夫玩手机。
既然剖析到学校了,咱们必定要来看看各个高校上玩知乎的男女比例:
不必我说你们就能够猜到,蓝色代表的是男生,女孩子要么在逛街,要么就在学习,抬头玩手机的必定是男孩子哈哈哈(尽管我也是男的)。
咱们再来看看各地区有哪些高校是知乎重度用户,色彩越深代表该学校的知乎用户越多:
别说了,知乎人均 985 实锤了,我流下了艳羡的泪水,我想请问同学,是怎么做到玩和学习同时兼顾的?你如果教教我,我高考间隔清华的录取分数线可能就更近一点了 ….
3、知乎的职业比例
除去学生之后,咱们发现知乎的人都是 ….
产品经理最多,这是最近几年最火爆的职业吧,不过话说你的文档写好了?需要画好了?是不是知乎的页面交互你不太称心?不然还不去干活?
能够看到,除了一些互联网公司的常见职位外,老师和律师用户在知乎中也占据不小的比重。
咱们再用一张热力求来察看 知乎支流职业(前四名)在各个地区的散布状况,色彩越深,代表该职业在该地区的人数越多:
总结
我剖析了这么多,不是想通知你们知乎的用户到底怎么怎么样,而是想说如果想做数据分析,FineBI 的确是一款很好用的工具,对集体和对企业都是这样。
当然了,下面才只是 FineBI 的冰山一角,更多的货色还得你们本人去摸索。