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

å¾ç导语:天越来越冷啦~

前段时间又刮起了入冬四件套(烤红薯、热奶茶、糖炒栗子、糖霜山楂)的热风~    

 小编也紧跟着潮流下班兴冲冲的跑去买~(附近店面的排队的人实在是太多了~风还大😷😷)

一到手就立马入口!!🥳🥳嗯~~甜到心坎里去啦~~还暖呼呼滴!!但是吃了几口之后~

齁甜🤮🤮算了算了,我还是认清自己的湖南胃吧~

🥘🥘又马不停蹄找了家火锅店~

                      

 果然~🥘🥘冬天吃火锅才是YYDS!!所以这期小编就打算给大家分享一下用python找到好吃受欢迎的火锅店~~

正文:

先给大家分享一个数据可视化案例:如何获取全国不同城市火锅店数量情况,并将这些数据进行可视化展示,以更加直观的方式去浏览全国不同省份、不同城市的火锅店分布情况。(本文数据来自于某度地图,通过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"
###响应数据

这里的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")

 

å¾ç

 还可以这样画

atafile = 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")
)

 

å¾ç

end :分享就到这啦~

记得给小编三连~家人们的支持是更新最大的动力💖💖

免费的完整项目源码领取处:私信小编09获取或者点击这行蓝色字体也可免费拿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49879.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美食杰项目(七)菜谱大全

本文目录 前言:1.具体样式2.实现的具体功能和代码思路3.element ui具体样式的网址4.相关代码5.总结: 前言: 本文给大家讲的是美食杰项目中菜谱大全项目的具体样式,代码思路和具体代码,希望能帮助到你 1.具体样式 2.实…

鱼香肉丝里到底有没有鱼?

鱼香肉丝,算是我最爱的一道菜了,无论饭店大小,他都是我首先就要找的菜,可谓痴迷,但是鱼香肉丝里到底有没有鱼?这是个千古之谜,这篇来自三个料理人的文章《千古之谜,鱼香肉丝里到底有…

Python爬虫:简单爬取粤菜菜谱

项目场景: 简单爬取粤菜菜谱。 实现思路: 访问主页,获取每个菜品的菜名、图片、详情页面网址。 访问上一步中获得的所有详情页面,获取工艺、口味、时间、主料、辅料信息。 清洗所获得的数据。 保存至本地文件。 实现过程&a…

文心一言的魔性作图,我头都笑掉了...

这几天看到网友们用文心一言作的图,看了后我都愣住了。。。 AI 作画 -- 三得利乌龙茶 AI 作画 -- 娃娃菜 AI 作画 -- 车水马龙 AI 作画 -- 驴肉2火烧 AI 作画 -- 唐伯虎点秋香 AI 作画 -- 鱼香肉丝 AI 作画 -- 胸有成竹 AI 作画 -- 夫妻肺片 AI 作画 -- 红烧狮子头 …

使用chrome浏览器插件postman模拟post、get请求

使用chrome浏览器插件postman模拟post、get请求 postman为chrome浏览器的一个插件,用来模拟post请求,get请求等。可以在chrome浏览器里安装插件(前提是你得访问了Google应用商店)。 如果不能访问Google,那个下载一个p…

chrome浏览器无法开启同步功能 request cancel

找了很多亲测最新100版本可用!!! 步骤 1、从下面链接提取google插件【Chrome-Sync-Helper】 链接: https://pan.baidu.com/s/1FTxrQ-IRjRmYdW5HcNateA 提取码: htga (如链接失效,请留言反馈!) …

Chrome 添加【微信 / QQ】内置浏览器(解决 “请在微信客户端打开链接” 提示)

前言 有些链接,是需要在微信客户端内才能打开的,那么想在 PC 端的浏览器上打开,怎么办呢? UA 不明白的话先不用管,继续往下看。 【安卓QQ内置浏览器UA】 Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V…

chrome浏览器控制台发送post请求

谷歌浏览器,点击F12,在控制台中输入下面代码,直接回车即可:(需要修改一下Admin-Token的值即可) 设置访问的Controller路径,“http://127.0.0.1:8090/api/dwStandard/superUploadBigFile” met…

和 if else说再见,SpringBoot 这样做参数校验才足够优雅!

大家好,我是老赵! 一、概述 当我们想提供可靠的 API 接口,对参数的校验,以保证最终数据入库的正确性,是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数,写了一大堆的 if else 进行校验&…

全球诺贝尔奖得主最多的30所大学

自1901年以来,诺贝尔奖得主全球最多的30所大学,这些大学堪称是真正的世界一流大学。世界一流大学的指标很多,但是有一项重要指标不可缺失,那就是至少有10位以上诺贝尔奖得主。以下是笔者根据维基百科整理的1901年至2018年间&#…

【娜家花园养花小记】

种花的话,看花开花落,经历寒冬酷暑,都是生命的一个体验的过程。月季花很坚强,酷暑来了,寒冬来了,它休眠一下。然后在其他时间呢,它就尽情的拿生命去绽放。种花更多的感受它带给你的快乐。带给你…

一生必看的 100 幅世界名画

智慧与美,是我之最爱。 从早期的叙事性绘画,直至后期更加侧重抒情与抽象的现代派绘画。希望这篇用心的长文,可以成为你开启艺术之们的钥匙。如果有幸有一幅画面,能够触及你内心柔软的角落抑或隐秘的激情,也请你静下心来…

2022-09-11 stonedb-宣讲-第二讲-一条SQL在Tianmu引擎中的运行

摘要: 记录列存储引擎第二讲的绸缪规划。 宣传语: 标题: 一条查询SQL在Tianmu引擎中的代码实现 宣讲语: 你是否只读过数据库理论的书籍, 但是一遇到代码就头疼呢? 你是否只会在理论上和数学公式上推导数据库内核, 但是从没亲自做过数据库内核的实现呢? 你是否对于数据库…

「上帝粒子」发现10周年

来源:FUTURE | 远见 选编:闵青云 2012年7月4日,欧洲核子研究中心(CERN)宣布发现了「上帝粒子」(希格斯玻色子)。希格斯玻色子是粒子物理学标准模型预言的一种玻色子,正是它的存在&…

全球诺贝尔奖得主最多的30所大学排名

上一篇:再见了阿里巴巴,希望以后不再有福报 100多年来,诺贝尔奖,尤其是自然科学领域的几种奖项,始终是全球范围内最受瞩目的科学荣誉。我们为您盘点1901-2019年全球诺贝尔获得者(包括毕业生及职员&#xff…

SignalPlus 2023宏观经济展望:洞见机遇,迎接挑战

1. 2022 年市场回顾 (Markets in Review) 虽然理由不尽相同,但对于宏观资产和加密资产而言, 2022 年都是值得铭记的一年,Luna、FTX、Genesis 等机构的崩塌对加密货币生态系造成了灾难性的破坏,同时宏观市场也见证了一个强硬的美联…

python-微信自动发送信息2

《《由于女朋友最近打算考编,作为一名合格的男票肯定要天天督促啦。》》 实现目标:利用python实现微信自动发送教育学or心理学题目 实现思路: 1.从本地读取教育学心理学题目,并随机抽取一题。 2.使用python自带模块os.system模…

20145237 《Java程序设计》第七周学习总结

20145237 《Java程序设计》第七周学习总结 教材学习内容总结 第十三章 一、认识时间与日期 1.时间的度量 在正式认识Java提供了哪些时间处理API之前,得先来了解一些时间、日期的历史问题,这样你才会知道,时间日期确实是个很复杂的问题&…

GAMES101-现代计算机图形学入门-闫令琪 - lecture2 线性代数基础 - 课后笔记

向量的点乘 在图形学中,点乘的作用: 能够计算两个向量之间的角度,例如计算曲面和曲线之间的角度,用于计算两个方向向量之间距离有多近,越近其cos值越大,越小则越远,值为-1~1.能够将一个向量投影…

20155304 2016-2017-2 《Java程序设计》第七周学习总结

20155304 2016-2017-2 《Java程序设计》第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造成越来越大的时间…