1.1 爬取目标
代码是爬的《胡润2022榜单》,想爬取《胡润2023榜单》的同学,只需把URL中的 AA777E5L 改为 16BKYYA3 即可。以后年份同理。
本次爬取的目标是,202X年胡润百富榜的榜单数据:
https://www.hurun.net/zh-CN/Rank/HsRankDetails?pagetype=rich
页面上能看到的信息有:
排名、财富值、排名变化、个人信息(姓名、性别、年龄)、企业信息(企业名称、所属行业)
页面结构很整齐,数据也很完整,非常适合爬取和数据分析使用。
1.2 分析页面
老规矩,打开Chrome浏览器,按F12进入开发者模式,依次点击Network->Fetch/XHR,准备好捕获ajax请求。
重新刷新一下页面,发现一条请求:
在预览界面,看到一共20条(0~19)返回数据,正好对应页面上的20个富豪信息。
所以,后面编写爬取代码,针对这个地址发送请求就可以了。
另外,关于翻页,我的个人习惯是,选择每页显示最多的数据量,这样能保证少翻页几次,少发送几次请求,防止被对端服务器反爬。
所以,每页选择200条数据:
以翻到第3页为例,url中的offset(偏移量)为400,limit(每页的条数)为200,所以,可得出规律:
offset = (page - 1) * 200
limit = 200
下面开始编写爬取代码。
1.3 爬取代码
首先,导入需要用到的库:
根据1.2章节分析得出的结论,编写逻辑代码,向页面发送请求:
用json格式解析返回的请求数据:(一行代码即可完成接收)
由于解析的字段较多,这里不再赘述详细过程,字段信息包含:
最后,依然采用我最习惯的保存数据的方法,先拼装Dataframe数据:
再用pandas的to_csv方法保存:
注意,加上这个编码格式选项(utf_8_sig),否则产生乱码哦。
爬取开发完成,下面展示结果数据。
1.4 结果数据
看一下榜单上TOP20的数据吧:
数据一共2916条,19个字段信息,含:
排名、排名变化、全名_中文、全名_英文、年龄、出生地_中文、出生地_英文、性别、公司名称_中文、公司名称_英文、公司总部地_中文、公司总部地_英文、所在行业_中文、所在行业_英文、组织结构、财富值_人民币_亿、财富值变化、 财富值_美元、年份。
数据信息还是很丰富的,希望能够挖掘出一些有价值的结论!
2.1 导入库
首先,导入用于数据分析的库:
增加一个配置项,用于解决matplotlib中文乱码的问题:
读取csv数据:
2.2 数据概况
查看数据形状:
查看前3名富豪:
查看最后3名富豪:
描述性统计:
从描述性统计,可以得出结论:
从最大值3900亿、最小值20亿、方差242来看,分布很零散,各位富豪掌握的财富差距很大,马太效应明显。
2.3 可视化分析
2.3.1 财富分布
结论:大部分的富豪的财富集中在20亿~400亿之间,个别顶级富豪的财富在3000亿以上。
2.3.2 年龄分布
结论:大部分富豪的年龄在50-60岁,其次是60-70和40-50岁。极少数富豪在20-30岁(年轻有为 )
2.3.3 公司总部分布
结论:公司分布城市,大多集中在北上广深等一线城市,另外杭州、香港、苏州也位列前茅。
2.3.4 性别分布
结论:男性富豪占据绝大多数,个别女性在列(巾帼不让须眉 )
2.3.5 行业分布
结论:百富榜中占比最多的行业分别是:房地产、医药、投资、化工等。
2.3.6 组织结构分布
结论:半数以上是未知,企业未对外开放,或榜单没有统计到;家族和夫妇占据前两类。
2.3.7 公司名称词云图
结论:阿里系公司占据榜首,其次是海天味业等。
综上所述,针对202X年胡润百富榜的榜单数据,得出如下结论:
财富分布:大部分的富豪的财富集中在20亿~400亿之间,个别顶级富豪的财富在3000亿以上。
年龄分布:大部分富豪的年龄在50-60岁,其次是60-70和40-50岁。极少数富豪在20-30岁(年轻有为 )
城市分布:公司分布城市,大多集中在北上广深等一线城市,另外杭州、香港、苏州也位列前茅
性别分布:男性富豪占据绝大多数,个别女性在列(巾帼不让须眉 )
行业分布:百富榜中占比最多的行业分别是:房地产、医药、投资、化工等
组织结构分布:半数以上是未知,企业未对外开放,或榜单没有统计到;家族和夫妇占据前两类。
公司名称分布:阿里系公司占据榜首,其次是海天味业等。
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!