大家好,我是阿辰,今天教大家如何获取全国不同城市火锅店数量情况,并将这些数据进行可视化展示,以更加直观的方式去浏览全国不同省份、不同城市的火锅店分布情况。

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

1

网页分析

首先先看一下数据源,在某度地图里面按照下方操作,就可以请求到全国的火锅店情况(从下图来看没有显示出来,但是通过Network,可以看到数据)

再network中,找到下面这个数据包

打开之后可以看到json数据

2

获取数据

对网页分析好之后,接下来可以借助Python技术进行获取数据,并保存到excel中。

导入相关库

import json
import requests
import openpyxl

请求数据

下面开始编写请求数据代码(请求时记得带上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':'https://map.baidu.com/@12949550.923158279,3712445.9716704674,6.28z',"Cookie":";"你的cookie",
}
##请求链接
url = "https://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=s&da_src=searchBox.button&wd=%E7%81%AB%E9%94%85%E5%BA%97&c=1&src=0&wd2=&pn=0&sug=0&l=6&b=(10637065.476146251,2368134.592189369;12772445.910805061,5056757.351151566)&from=webmap&biz_forward={%22scaler%22:1,%22styles%22:%22pl%22}&sug_forward=&auth=NTSwAZUMzIaTTdWD4WAv0731cWF3MQEauxLxREHzERRtykiOxAXXw1GgvPUDZYOYIZuVt1cv3uVtGccZcuVtPWv3GuztQZ3wWvUvhgMZSguxzBEHLNRTVtcEWe1GD8zv7ucvY1SGpuxVthgW1aDeuxtf0wd0vyMySFIAFM7ueh33uTtAffbDF&seckey=c6d9c7e05d7e627c56ed46fab5d7c5c792064779599d5e12b955a6f18a1204375d1588206c94d22e4bdd1ade0ad06e78c21917e24c6223b96bc51b75ca38651a1b203a0609f126163c5e82fd0549a068e537303424837ab798acfc9088e5d76a66451c20ebd9599b41c9b4f1371850d20fa442ad464712f54c912422f4fa20b3052f8bb810f30d41c7c0e55af68f9d9d973537f03d0aa0a1d1617d78cae29b49c64c2d2dc3f44cf0f8799234b124a7a2dec18bfa011e097e31a508eae37b8603f97df8f935f04b3652f190eac52d04816f302a582c53971e515ff2e0e2b4cc30446e0bee48d51c4be8b6fe4185589ed9&device_ratio=1&tn=B_NORMAL_MAP&nn=0&u_loc=12677548,2604239&ie=utf-8&t=1618452491622"
###响应数据
response = requests.get(url,headers=headers).json()

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

通过返回的json数据可知道,我们的目标数据在more_city中,里面是列表数据是省份(provice是省份名称,num是火锅店数量),紧接着每一个省份里都有city(列表),里面是对应着省份的城市(name是城市名称,num是对应城市火锅店数量)

response = response['more_city']
for i in response:city = i['city']print(i['province'])print(i['num'])for j in city:print(j['name'])print(j['num'])

保存到excel

省份和城市分别保存到两个不同的excel中

outwb_p = openpyxl.Workbook()
outws_p = outwb_p.create_sheet(index=0)
outws_p.cell(row=1, column=1, value="省份")
outws_p.cell(row=1, column=2, value="数量")outwb_c = openpyxl.Workbook()
outws_c = outwb_c.create_sheet(index=0)
outws_c.cell(row=1, column=1, value="城市")
outws_c.cell(row=1, column=2, value="数量")##################
###在循环中写入数据
##################### 保存全国省份火锅数量-李运辰”
outwb_p.save("全国省份火锅数量-李运辰.xls")  # 保存
### 保存全国城市火锅数量-李运辰”
outwb_c.save("全国城市火锅数量-李运辰.xls")  # 保存

         

3

数据可视化

1.全国火锅店数量分布

datafile = u'全国省份火锅数量-李运辰.xls'
data = pd.read_excel(datafile)
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 opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
c = (Map().add("数量", [list(z) for z in zip(name, value)], "china").set_global_opts(title_opts=opts.TitleOpts(title="全国火锅店数量分布情况")).render("全国火锅店数量分布情况.html")
)

还可以这样画

datafile = u'全国省份火锅数量-李运辰.xls'
df = pd.read_excel(datafile)
province_distribution = df[['省份', '数量']].values.tolist()
geo = Geo()
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.add_schema(maptype="china")
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=110000))
# 加入数据
geo.add('全国火锅店数量分布情况图2', province_distribution, type_=ChartType.EFFECT_SCATTER)
geo.render("全国火锅店数量分布情况图2.html")

2.四川火锅店数量分布

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

datafile = u'全国城市火锅数量-李运辰.xls'
data = pd.read_excel(datafile)
city = data['城市'].tolist()
values2 = data['数量'].tolist()###四川
name = []
value = []
flag = 0
for i in range(0,len(city)):if city[i] =="绵阳市":flag = 1if flag:name.append(city[i])value.append(int(values2[i]))if city[i] =="甘孜藏族自治州":name.append(city[i])value.append(int(values2[i]))break
c = (Map().add("四川火锅店数量分布", [list(z) for z in zip(name, value)], "四川").set_global_opts(title_opts=opts.TitleOpts(title="四川火锅店数量分布"), visualmap_opts=opts.VisualMapOpts()).render("四川火锅店数量分布.html")
)

4

小结

以上的可视化可能不够很深入,本文可以起到抛砖引玉作用,下方会给大家本文数据集和代码,大家可以更好发挥。

针对本文,如果大家有什么好的可视化做法,可以在下方留言(每一条留言我都会认真看),谢谢

最后说一声:原创不易,求给个赞、在看、评论

推荐阅读

手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示

手把手教你实现『B站直播』弹幕实时分析

以『B站直播』为例,实现数据『实时』可视化分析

Flask结合ECharts实现在线可视化效果,超级详细!

公众号后台添加阿辰微信,可领取代码和数据集

实战|教你爬取全国火锅店数量,并利用地图可视化展示相关推荐

  1. Python爬取全国火锅店,并利用地图可视化展示

    今天给大家分享一个数据可视化案例:如何获取全国不同城市火锅店数量情况,并将这些数据进行可视化展示,以更加直观的方式去浏览全国不同省份.不同城市的火锅店分布情况. 本文数据来自于某度地图,通过pytho ...

  2. 做个合格的吃货~Python爬取全国火锅店,并利用地图可视化展示~

    导语:天越来越冷啦~ 前段时间又刮起了入冬四件套(烤红薯.热奶茶.糖炒栗子.糖霜山楂)的热风~     小编也紧跟着潮流下班兴冲冲的跑去买~(附近店面的排队的人实在是太多了~风还大

  3. 其实特简单,1分钟爬取全国高校信息并制成大屏可视化

    大家好,记得当初高考完,我选学校的时候是在书店买的高校信息排名的书,然而书中的信息都是很久之前的,并没有什么太大帮助. [注]文末提供技术交流群 干货推荐 深度盘点:这20套可视化炫酷大屏真香啊(附源 ...

  4. 1分钟爬取全国高校信息,制成大屏可视化!

    记得当初高考完,我选学校的时候是在书店买的高校信息排名的书,然而书中的信息都是很久之前的,并没有什么太大帮助.今天就来带大家爬点真正有用的东西,全国高校信息,涵盖绝大多数高校,并制作可视化看板.话不多 ...

  5. Python爬虫入门教程32:爬取boss直聘招聘数据并做可视化展示

    前言

  6. Python爬虫实战之 爬取全国理工类大学数量+数据可视化

    上次爬取高考分数线这部分收了个尾,今天咱们来全面爬取全国各省有多少所理工类大学,并简单实现一个数据可视化.话不多说,咱们开始吧. 第一步,拿到url地址 第二步,获取高校数据 第三步,地图可视化 第四 ...

  7. 教你轻松爬取全国40城5000+地铁站点数据!(附源码)

    大家好,我是 辰哥~ 今天介绍一种新的 获取城市地铁站点数据的方法,而且不再只是北上广深四个城市,而是 全国开通地铁的城市. 对了,你觉得全国有多少个城市开通了地铁? 文末附源码 ▶正文 今天爬取数据 ...

  8. 爬虫实战—轻松爬取全国40城5000+地铁站点数据!附源码和数据集

    原文链接:小一教你轻松爬取全国40城5000+地铁站点数据!附源码和数据集 大家好,我是小一 上一篇文章讲了一个失败的数据分析案例,导致失败最最主要的原因就两个字:数据 有时候,爬虫爬到的数据是很珍贵 ...

  9. 【爬虫实战】Python 自制天气预报程序!爬取全国天气网

    学会了爬虫,让我们自制一个天气预报的爬虫吧! 需求分析 1.用 requests 爬取 全国天气网 的网页源代码: 2.用 pyquery 解析网页源代码,取得天气情况信息的节点: 3.用 xlwt ...

  10. python 批量下载网页图片_手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ /1 前言/ 上篇文章 手把手教你爬取天堂网1920*1080大图片(批量下载)--理论篇我们谈及了天堂网 ...

最新文章

  1. a.cmd 文件里的内容
  2. java原始模型模式_java设计模式--原始模型模式
  3. 小巧但强大,浏览器开发常用工具插件一枚
  4. linux shell 变量减法_第四章 shell和环境变量
  5. android 一些常用的功能方法代码块
  6. nyoj-138-找球号(二)----hash算法之除留余数法+vector
  7. android如何让service不被杀死-提高进程优先级
  8. HNOI2019爆零记
  9. 鸿蒙系统正式面世,跨时代!“鸿蒙”系统正式面世!余承东:如有必要随时可替代安卓...
  10. 学成在线案例(完整代码)
  11. TCP/IP、Http的区别--(转自任智康)
  12. 提高电脑开机速度的方法
  13. ubuntu安装frps服务器与xtcp配置
  14. 计算机毕业设计JAVA软考在线题库系统mybatis+源码+调试部署+系统+数据库+lw
  15. Matlab 科研绘图汇总
  16. Word教程_编程入门自学教程_菜鸟教程-免费教程分享
  17. winform 创建窗口句柄时出错
  18. Java学习 (基础语法)day1 前言、入门程序、常量、变量
  19. 2020年7月份世界计算机编程语言排行榜
  20. 带进度的圆形进度条的实现

热门文章

  1. 关于编译优化选项o3的问题
  2. 哔哩哔哩mac电脑版上线,来聊聊B站Mac版客户端初体验
  3. python:tushare 获取A股指数数据,并使用LSTM预测
  4. 初遇初识初知接下来是什么_娱乐圈隐藏学霸,演技零差评,张新成凭什么不火?...
  5. android模拟器的录屏,夜神安卓模拟器如何录制视频
  6. 25岁社招进阿里,从电商到有赞新零售,他仅1年就打开了马云一直想做的新领域!...
  7. Unity 制作数字图片字体
  8. 【转帖】刘备三顾茅庐,请Elasticsearch出山
  9. 3dmax运动混合器的使用
  10. GoLang之浅析unsafe.Pointer与uintptr