Python技术知识获取数据并进行可视化(已火锅店为例)_python 火锅店

**注:**关于网络调试助手的使用,点击蓝色字体即可拿到相关资料

在这里插入图片描述

2、编写爬虫程序

2.1 导入相关库
import requests,openpyxl
from numpy import mean
from pyecharts import options as opts
from 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':'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、全国火锅店数量分布

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

在这里插入图片描述

总结

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

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

最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值