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

)

目录
相关文章
|
15天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
2天前
|
开发框架 开发者 Python
探索Python中的装饰器:技术感悟与实践
【10月更文挑战第31天】 在编程世界中,装饰器是Python中一种强大的工具,它允许我们在不修改函数代码的情况下增强函数的功能。本文将通过浅显易懂的方式,带你了解装饰器的概念、实现原理及其在实际开发中的应用。我们将一起探索如何利用装饰器简化代码、提高可读性和复用性,同时也会分享一些个人的技术感悟,帮助你更好地掌握这项技术。
11 2
|
7天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
7天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。
|
8天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
13 1
|
14天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
32 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
6天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
24 0
|
7天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
20 1