excelvba抓取网页数据(人均985,年薪百万的知乎背后,到底有什么秘密?)

优采云 发布时间: 2021-12-31 06:05

  excelvba抓取网页数据(人均985,年薪百万的知乎背后,到底有什么秘密?)

  友情提示:文末...

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

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

  但是熟悉它的人应该知道,python爬取很简单,但是分析起来却非常困难。SQL 语句,Pandas 和 Matplotlib 非常繁琐,大多数人不会。

  于是想到了一种更简单的数据分析方式,即python爬取+BI分析。BI是什么就不用我多介绍了。Python强大的数据采集能力,结合敏捷BI简单快速的数据可视化操作,一定能发挥出分析的效果!

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

  一、我们想要什么数据?

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

  

  其次是性别、职业、地理位置、活动水平等,都是。

  二、 爬取的过程

  知乎 现在我用的是https请求,数据加密,不过问题不大,重要的是网页数据发生了变化,后台在请求的时候会对爬虫做一些判断,所以需要每次请求时添加请求头尽可能接近浏览器请求的样子。

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

  

  每页有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进行自动化,别无他法。

  在写这篇文章之前,我分析了房价和销量,特地做成了一张*敏*感*词*图供大家参考:

  

  

  四、知乎数据可视化

  FineBI的仪表盘可以通过拖拽的方式调整组件的位置,并配备了各种类型的直方图、饼图和雷达图。数据可视化就是这么简单,只有你想不到,没有它你做不到。

  

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

  

  从云字图可以看出,越繁华的城市,知乎的用户越多(文字越大,占比越大)。因此,我们也可以看到,以北京、上海、广州、深圳四个一线城市为中心,其次是新一线城市。换句话说:知乎人多是一线城市或新一线城市,真是见多识广!

  我们来看看具体的排名:

  

  杭州位居第三。果然,互联网的优采云之一并没有被吹捧。阿里巴巴网易起到了很大的作用。你为什么这么说?看到这个职业你就明白了。

  2、他们属于哪些学校?

  

  看看,看看,这个度真的很高,谁说人均985吹的?

  

  但是知乎专注于高智商的聚集地,学生花在手机上的时间比上班族多,这也就不足为奇了。

  既然分析了学校,就要看看各个高校玩知乎的男女比例:

  

  不用我说,你也能猜到蓝色代表男孩。女孩要么购物要么学习。低头玩手机的肯定是男生(虽然我也是男的)。

  我们来看看每个地区有哪些大学是知乎重度用户。颜色越深,学校的知乎用户越多:

  

  不说了,知乎人均是985真锤。我流下了羡慕的泪水。请问各位同学,你们是如何做到边玩边学的?如果你教我,我的高考可能更接近清华的录取分数线……

  3、知乎 占有率

  排除了学生之后,我们发现知乎的人都是……

  

  产品经理最多。这是近年来最流行的职业,但是你的文档呢?需求被绘制?你对知乎的页面交互不满意吗?你为什么不去上班?

  

  可以看出,除了一些互联网公司的共同职位外,教师和*敏*感*词*用户在知乎中也占据了很大的比例。

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

  

  总结

  分析了这么多,不是要告诉你知乎的用户是什么样的,而是说如果你要做数据分析,FineBI确实是一个非常有用的工具,无论是对个人还是对公司。所以。

  当然,以上只是FineBI的冰山一角,更多的东西还需要自己去探索。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线