栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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=https://www.mshxw.com/skin/sinaskin/image/nopic.gif"

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


总结

这次知道带对象去哪家火锅店了把

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/942112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号