Python技术知识获取数据并进行可视化(已火锅店为例)(Python数据分析与应用:从数据获取到可视化)

网友投稿 287 2022-09-07


Python技术知识获取数据并进行可视化(已火锅店为例)(Python数据分析与应用:从数据获取到可视化)

想吃火锅不知道怎么选,我用python熬肝一晚抓取全国火锅店做top10分析

目录

​​前言​​

​​1、数据溯源​​

​​1.1 打开地图搜索,可以看到地图上能展示很多店铺数据,那么数据从哪里来的呢?​​​​1.2 网络助手调试​​

​​2、编写爬虫程序​​

​​2.1 导入相关库​​​​2.2 请求数据​​​​2.3以下为店铺部分数据​​

​​3、数据存放到表格​​​​4、数据分析​​​​5、湖南火锅店数量分布​​​​6、全国火锅店数量分布​​

​​总结​​

前言

对象是川蜀人,比较喜欢吃火锅,每次都在为选择网红店而发愁,因此我用python爬虫花了一晚的时间抓取市内所有的店铺做可视化分析

需求: 抓取市内火锅店数量情况,并将这些数据进行可视化展示,以更加直观的方式去浏览省内不同城市火锅店分布情况

本文数据来自于某度地图,通过python技术知识去获取数据并进行可视化

注: 本文内容仅作为编程技术学习讨论,相关代码和数据不可用于商业用途,否则后果自负。

1、数据溯源

1.1 打开地图搜索,可以看到地图上能展示很多店铺数据,那么数据从哪里来的呢?

1.2 网络助手调试

打开网络调试助手,可以看到这里面就有对应店铺的数据,数据的传输都是通过这个API来交互的,可以通过爬虫请求这个接口获取需要的数据

2、编写爬虫程序

2.1 导入相关库

import requests,openpyxlfrom numpy import meanfrom pyecharts import options as optsfrom pyecharts.charts import Map

2.2 请求数据

下面开始编写请求数据代码(请求时记得带上headers)

headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", 'Referer':' "Cookie":";"你的cookie",}url = "= requests.get(url,headers=headers).json()

这里的cookie可以在浏览器network中复制即可。

通过返回的json数据可知道,我们的目标数据在content中,里面是列表数据是店铺资源(overall_rating是评分,phone是店家电话,price是均价,name是店铺名称)

2.3以下为店铺部分数据

res = session.get(url, headers=headers) if res.status_code == 200: items = res.json() for i in items.get('content')[0:10]: ext = i.get('ext').get('detail_info') overall_rating = ext.get('overall_rating') phone = ext.get('phone') price = ext.get('price') name = ext.get('name') print(overall_rating,phone,price,name)

3、数据存放到表格

work = openpyxl.Workbook()ws = work.create_sheet(title='省数据', index=0)ws.append(['评分', '联系方式', '价格', '店名'])

4、数据分析

根据值评分进行排行统计TOP10店铺

5、湖南火锅店数量分布

为了绘制城市的分布图,选择了湖南省为例进行绘制(如果要绘制全国的所有城市,那样出来的图密密麻麻,不美观)

c2 = ( Map() .add(f"湖南{wd}店数量各市统计", bb, "湖南") .set_global_opts( title_opts=opts.TitleOpts(title=f"湖南{wd}店数量分布"), visualmap_opts=opts.VisualMapOpts() ) .render(f"湖南{wd}店数量分布.html") ) return c1,c2

6、全国火锅店数量分布

u

attr = data['省份'].tolist()value = data['数量'].tolist()name = []for i in attr: if "省" in i: name.append(i.replace("省","")) else: name.append(i)from pyecharts import options as optsfrom pyecharts.charts import Mapfrom pyecharts.faker import Fakerc = ( Map() .add("数量", [list(z) for z in zip(name, value)], "china") .set_global_opts(title_opts=opts.TitleOpts(title="全国火锅店数量分布情况")) .render("全国火锅店数量分布情况.html"))

总结

灵感来源于生活,所以说没有对象的赶紧去找一个,这样才能刺激到你们,从而拓展自己的思维逻辑,面向更多的技术难点。

↓ ↓ ↓ ↓ 看更牛滴技术还有拿更多的源码 ↓ ↓ ↓ ↓


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:​多模态系统下软体机械手对多种意图的精准实时控制
下一篇:详解Java 加密解密和数字签名问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~