Python技术知识获取数据并进行可视化(以火锅店为例 六一到了 快带对象去吃火锅吧)

简介: Python技术知识获取数据并进行可视化(以火锅店为例 六一到了 快带对象去吃火锅吧)

Python技术知识获取数据并进行可视化(以火锅店为例 六一到了 快带对象去吃火锅吧)

今天六一了 带着对象去吃火锅吧

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

目录

1、数据溯源
1.1 打开地图搜索,可以看到地图上能展示很多店铺数据,那么数据从哪里来的呢?
1.2 网络助手调试
2、编写爬虫程序
2.1 导入相关库
2.2 请求数据
2.3以下为店铺部分数据
3、数据存放到表格
4、数据分析
5、湖南火锅店数量分布
6、全国火锅店数量分布
总结

注意: 本文数据来自于某度

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

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

二、编写爬虫程序
1 导入相关库

import requests,openpyxl
from numpy import mean
from pyecharts import options as opts
from pyecharts.charts import Map
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':'https://map.baidu.com/@12949550.923158279,3712445.9716704674,6.28z',
    "Cookie":";"你的cookie",

}
url = "https://ditu.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=158&src=0&wd2=&pn=0&sug=0&l=13&b=(12553849.45,3237935.24;12570777.45,3265551.24)&from=webmap&biz_forward={%22scaler%22:1,%22styles%22:%22pl%22}&sug_forward=&auth=P65Ox7I43B3Ta0COBJTb5D4NVW9RBQ9TuxLETRBxBLLty9iRyki%3DxXwvYgP1PcGCgYvjPuVtvYgPMGvgWv%40uVtvYgPPxRYuVtvYgP%40vYZcvWPCuVtvYgP%40ZPcPPuVtvYgPhPPyheuVtvhgMuxVVtcvY1SGpuTtGKD%3DCCGYuxtE20w5V198P8J9v7u1cv3uxt2dd9dv7uPWv3Guxt58Jv7uPYIUvhgMZSguxzBEHLNRTVtcEWe1aDYyuVt%40ZPuzteL1wWveuxtf0wd0vyMFUSCy7OAupt66FKEu%3D%3D8xX&seckey=vHBTJ4tdi68MW8qWw%2BjU2KFSTFNFo3ItXO6ack3ti8w%3D%2CAp6F2yrR-L11fgqtb_BCcR__vsbaezgdq3dBSEVigT5dYmDiJD8CMaToeS_RfR0pFYByyqzM_Fym7UZvX8dmUA_npbBsJiTpMFwIgVQ5pFQ4nDgupLc5wRg_xqikNzFJMAI55erqBKkbkNQqXfrs9hl6futZVDWgi_jFWBfUDhiNyCGARzZeP0UzmuY9sAJX&device_ratio=1&tn=B_NORMAL_MAP&nn=0&u_loc=12568222,3256533&ie=utf-8&t=1649831407880&newfrom=zhuzhan_webmap"
response = 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、全国火锅店数量分布

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

)

目录
相关文章
|
1天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
8 1
|
2天前
|
C++ Python
Python中的类与对象
Python中的类与对象
6 1
|
2天前
|
JSON 数据可视化 Shell
数据结构可视化 Graphviz在Python中的使用 [树的可视化]
数据结构可视化 Graphviz在Python中的使用 [树的可视化]
8 0
|
3天前
|
存储 JSON 数据挖掘
python序列化和结构化数据详解
python序列化和结构化数据详解
11 0
|
3天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
3天前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
5天前
|
Python
Python中赋值使地址一样的技术探究
Python中赋值使地址一样的技术探究
19 0
|
5天前
|
算法 Python
Python中不使用sort对列表排序的技术
Python中不使用sort对列表排序的技术
17 1
|
5天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
5天前
|
开发者 索引 Python
Python中调整两列数据顺序的多种方式
Python中调整两列数据顺序的多种方式
25 0