爬取全国各地区汽车销量情况并用中国地图可视化展示

2023-11-13

爬取全国各地区汽车销量情况并用中国地图可视化展示

项目介绍

爬取2017年全国各省份的汽车销量情况(由于数据源的问题,不包含台湾省的数据情况),并且利用 pyecharts 可视化中国地图展示。

数据爬取网页链接:
http://www.daas-auto.com/newsDe/892.html

pyecharts 是Python制图一个功能非常强大的第三方库,不仅可以做简单的图表,还可以做世界地图,数据大屏等等,有兴趣的可以看一下官方文档。

https://pyecharts.org/#/zh-cn/intro

网页详情

查看页面情况,由于页面没有采用JavaScript编写,因此我们直接就采用requests库进行内容爬取。
在这里插入图片描述
老规矩,F12 查看网页源码情况:
在这里插入图片描述
在Network选择框中获取网页的请求头:

headers_ = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.51"}

直接通过selecter选择器爬取想要的内容:

province = bs.select(" table > tbody > tr > td:nth-child(1)")
values = bs.select("table > tbody > tr > td:nth-child(2)")

代码

爬取数据代码

import requests
import re
from bs4 import BeautifulSoup

headers_ = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.51"}
url = 'http://www.daas-auto.com/newsDe/892.html'
html = requests.get(url,headers = headers_)
bs = BeautifulSoup(html.text,"html.parser")
# print(bs)

province = bs.select(" table > tbody > tr > td:nth-child(1)")
values = bs.select("table > tbody > tr > td:nth-child(2)")

data = []

for pro,val in zip(province,values):
    d = []
    w = pro.text
    #由于Map可视化中国地图中,对于各个省份的命名是有固定的格式的,
    #因此我们要对爬取的省份名称进行处理一下,详细情况可以看上文提到的pyecharts官方文档
    if w == "省份":
        w = w.replace("省份","地区")
    else:
        w = w.replace("省","")
        w = w.replace("市","")
        w = w.replace("自治区","")
        w = w.replace("广西壮族","广西")
        w = w.replace("新疆维吾尔","新疆")
        w = w.replace("宁夏回族","宁夏")
    d.append(w)
    if val.text != '销量(辆)':
        d.append(int(val.text))
    else:
        d.append(val.text)
    print(d)
    data.append(d)

将爬取的数据保存到文档中

import xlwt  #进行excel操作

#创建一个Excel数据表
word = xlwt.Workbook(encoding = 'utf-8', style_compression=0)
#     添加sheet表格,并允许重复修改
sheet = word.add_sheet('销量数据', cell_overwrite_ok=True)

for i in range(0, len(data)):
    d = data[i]
    for j in range(0, 2):  #i,j均是从0开始的
        sheet.write(i, j, d[j]) #第i+1行第j+1列,填入数据d[j]

word.save('销量数据.xls')
print("数据保存成功!")

中国地图可视化

from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.globals import ThemeType, CurrentConfig
import pandas as pd


data = pd.read_excel("销量数据.xls")
# print(data['地区'])
# print(data['销量(辆)'])

datas = [(i, j) for i, j in zip(data['地区'], data['销量(辆)'])]

# 实例化一个Map对象
map_ = Map(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))

# 地图  maptype="china"选择中国地图,data_pair=datas数据源
map_.add(series_name="销售数量", data_pair=datas, maptype="china")

# 设置系列配置项
map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False))   # 不显示label
# 设置全局配置项
map_.set_global_opts(
     title_opts=opts.TitleOpts(title="各省份汽车销售情况", 
                               pos_left='40%', 
                               pos_top='10'),   # 调整title位置
     legend_opts=opts.LegendOpts(is_show=False),
     visualmap_opts=opts.VisualMapOpts(
         max_=1450000, 
         min_=50000, 
         is_piecewise=True,
       pieces=[{"max": 250000, "min": 50000, "label": "50000-250000", "color": "#00FFFF"},
                 {"max": 450000, "min": 250001, "label": "250001-450000", "color": "#FF69B4"},
                 {"max": 650000, "min": 450001, "label": "450001-650000", "color": "#0000FF"},
                 {"max": 850000, "min": 650001, "label": "650001-850000", "color": "#00BFFF"},
                 {"max": 1050000, "min": 850001, "label": "850001-1050000", "color": "#228B22"},
                 {"max": 1250000, "min": 1050001, "label": "1050001-1250000", "color": "#FF0000"},
                 {"max": 1450000, "min": 1250001, "label": ">=1250001", "color": "#FFD700"}
                ] # 分段  添加图例注释和颜色
     )
)
# 渲染在网页上   有交互性
map_.render('各省份汽车销售情况.html')
map_.render_notebook()

运行效果

在这里插入图片描述

在这里插入图片描述
上个星期都没有更新博文,五一假期后的第一天继续努力!
结束,拜拜!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬取全国各地区汽车销量情况并用中国地图可视化展示 的相关文章

随机推荐

  • 全栈工程师的职业前景及就业环境情况说明

    本篇文章主要讲解全栈工程师的职业前景和就业趋势 作者 任聪聪 日期 2023年4月20日 全栈工程师顾名思义就是会一个技术栈领域的所有客户端技术 如web全栈即前后端技术栈都会的工程师 如web pc app都会的则也是全栈 大全栈 故此全
  • 网络---因特网的概述

    因特网的概述 网络 互联网 因特网 网络 许多计算机连接在一起 互联网 internet 许多网络连接在一起 因特网 全球最大的一个互联网 Internet和广域网 局域网 覆盖范围小 自己花钱买设备 带宽固定 10M 100M 1000M
  • 关于ER图和UML图之间的对比

    ER图与UML图 ER图 实体 联系图 Entity Relation Diagram 用来建立数据模型 在数据库系统概论中属于概念设计阶段 ER图提供了表示实体 即数据对象 属性和联系的方法 用来描述现实世界的概念模型 构成E R图的基本
  • React项目 加入 TS

    1 全局安装ts npm i g typescript 2 创建tsconfig json tsc init 修改tsconfig json 开启jsx和allowJs配置 3 安装开发环境依赖 npm install save dev t
  • 数据分析:Pandas之Series用法总结

    文章目录 Series 一 导入Series 二 创建Series 1 使用列表或者numpy进行创建 默认索引为0到N 1的整数型索引 2 使用字典创建 推荐使用 三 Series的索引和切片 1 显式索引与切片 2 隐式索引与切片 四
  • 域名系统由什么服务器组成,域名(DNS)的有那三个组成部分

    域名制度 域名 DNS 的有那三个组成部分 DNS由下面三个部分组成 域名空间和资源记录 域名空间是一个树状结构 资源记录是与名字相关的一些数据 从概念上说 每个结点和域名空间树的叶子结点都有一定的信息 而查询是要查询出一些与之相关的特定信
  • 辛普森悖论及贝叶斯解释

    辛普森悖论 Simpson s Paradox 亦有人译为辛普森诡论 为英国统计学家E H 辛普森 E H Simpson 于1951年提出的悖论 即在某个条件下的两组数据 分别讨论时都会满足某种性质 可是一旦合并考虑 却可能导致相反的结论
  • leetcode 63. 不同路径 II

    一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 现在考虑网格中有障碍物 那么从左上角到右下角将会有多少条不同的路径
  • ReactNative系列之四十八屏幕宽高

    有几种方式可以获取屏幕 依次来对比下 1 view gt onLayout measure 如果view是flex 1 则获取的为屏幕真正的可显示宽高 即全面屏含刘海高度 安全区模式不含刘海高度 实际 2 Dimens 监听change 在
  • 【实现一套爬虫数据抓取平台】[3-5-03] 微博长短地址转换

    文章目录 零 系列目录 一 背景 二 代码 三 总结 零 系列目录 写这套文章的时候 不会完全按照目录的顺序一篇一篇写 大家可以到目录中直接找到对应的章节进行查看 点我跳转 一 背景 新浪微博有两类地址 分别是 pc站地址 https we
  • VSCode配置C++开发环境:OpenCV

    文章目录 Linux 编译 调试 配置OpenCV Win10 编译调试 配置OpenCV 参考 最近在做深度学习的C 部署相关工作 于是写下这篇文档记录环境配置的过程 环境配置是一项非常繁琐的工作 无论从大学做相关作业还是到工作上 做这项
  • ORACLE中通过SQL语句(alter table)来增加、删除、修改字段

    ORACLE中通过SQL语句 alter table 来增加 删除 修改字段 1 添加字段 alter table 表名 add 字段 字段类型 default 输入默认值 null not null 2 添加备注 comment on c
  • Git合并代码流程——2023.05

    本文介绍一下如何将git上面的代码合并 一 把分支代码合并到master 首先切换到分支hello git checkout hello 使用git pull 把分支代码pull下来 git pull 切换到主分支 git checkout
  • 【收藏】开发人员看过来:11 个免费的开源 IDE

    1 Komodo Edit Windows Mac Linux Komodo Edit 是开源的 支持PHP Python Ruby JavaScript Perl Tcl XML HTML 5 and CSS 3 它具备语法着色 折叠 背
  • SSTI-2 继承关系 & 魔术方法

    主要内容学习自 B站 重庆橙子科技 SSTI 模板注入 我力推橙子科技的所有 CTF 课程 由于在模板注入时 我们能够注入的地方 终究只是一个变量 而不是 Python 语句 所以直接注入 Python 语句是不能执行的 需要一些特殊操作让
  • training set, validation set, test set的区别

    首先安利一下一个机器学习的入门在线课程 台湾大学机器学习 以及关于上面这个问题的一个解答 解答 大四做毕设的时候就有这个问题 当时没想明白 后面一直疑惑不解 直到今天才搞懂 首先写一下结论 training set 用来训练模型 valid
  • idea通过wsdl文件自动生成webservice客户端java代码

    今天做项目要从门户后台调用一个webservice接口获取角色对应的菜单列表 门户提供一个wsdl的url 之前没调过webservice接口 因为知道可以根据wsdl链接自动生成客户端代码 网上搜了一下 可以用idea自动生成 就试了一下
  • ssh放行端口_ssh 连接需要开放哪些端口

    目前的iptables如附 A OUTPUT o lo j ACCEPT A OUTPUT m state state RELATED ESTABLISHED j ACCEPT A OUTPUT m state state INVALID
  • 如何用Microsoft Office Visio画时序图

    文件 新建 软件和数据库 UML模型图 然后在左侧的形状中点击 UML序列
  • 爬取全国各地区汽车销量情况并用中国地图可视化展示

    爬取全国各地区汽车销量情况并用中国地图可视化展示 项目介绍 网页详情 代码 爬取数据代码 将爬取的数据保存到文档中 中国地图可视化 运行效果 项目介绍 爬取2017年全国各省份的汽车销量情况 由于数据源的问题 不包含台湾省的数据情况 并且利