前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:小dull鸟
给大家分享一篇python爬虫与数据分析干货,用python爬取美团酒店信息,再用pyecharts详细分析数据结果,带你全方位了解所在城市酒店信息。
一、爬取美团酒店信息
以北京市为例,进入北京市美团酒店主页:
https://hotel.meituan.com/beijing/
经分析发现该网页为Ajax动态网页,抓包分析出酒店数据接口如下图:
每次返回20条数据信息,包含酒店名称、地址、经纬度、评分等一系列信息,它的请求参数为:
测试发现,只有offset为控制页码变化的变量,其它都为固定参数,所有我们的模拟请求代码如下:
因为请求头的参数太多了,所以我用params=data将其分离出来了(这里要区别于post请求的data参数),这样代码看起来既简洁又易懂。
本次准备只保存酒店的名字、地址、最低价、评分、经纬度、酒店类型、开业时间、行政区及评论数等信息到表格,因为返回的数据为json格式,所以保存代码为:
行政区信息是从地址信息中抠出来的,看上图最后一行代码
保存完的数据展示为:
总共有1121家酒店,估计有些酒店因为疫情原因没营业,因为去年好像有66页共1300家酒店数据
二、pyecharts分析数据
1.连锁酒店谁最多?
取出表格的第一列,用正则表达式将括号及其内容去掉,统计每家酒店的数量并制作词云图,代码为:
结果为:
由结果可以看出,北京市美团连锁酒店数量前三名分别为速八、汉庭和如家。
2.行政区酒店数量大比拼
找出行政区所在列的数据,统计每个行政区出现的数量,画成柱状图:
结果为:
由上图可以看出,朝阳区的酒店数量最多,有290家;门头沟区的酒店数量最少,只有1家;平均每个区的酒店数量为90家。
3.分析符合消费水平的价格区间
打算以评论数作为被消费次数的参考依据,以价格和评论数为坐标画出散点图,代码为:
结果为:
评论数最高的有37979次,价格在100元左右;大部分价格都集中在在300元以下,当然,这里指的是最低价格,看来价格仍是消费的主导因素。
4.首都的星级酒店有多少?
取出酒店类型的数据列吗,统计每个类型的数量,画出饼状图,代码为:
结果为:
经济型竟然占了3/4,看来首都的星级酒店占比不是很多啊。
5.分析一下今年来开业酒店数量
取出开业时间列,统计数量,画出折线图,代码为:
结果为:
从上图可以看出,08年奥运会带来一波酒店开业小高潮,但是今年的疫情对酒店行业额的冲击比较大。