爬取全国各地区汽车销量情况并用中国地图可视化展示 您所在的位置:网站首页 中国汽油价格数据分析图表 爬取全国各地区汽车销量情况并用中国地图可视化展示

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

2024-07-07 16:03| 来源: 网络整理| 查看: 265

爬取全国各地区汽车销量情况并用中国地图可视化展示 项目介绍网页详情代码爬取数据代码将爬取的数据保存到文档中中国地图可视化 运行效果

项目介绍

爬取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() 运行效果

在这里插入图片描述

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有