python实现全国省会当前温度可视化
获取数据
requests爬取天气网站的html信息
def getHtmlText(url):try:headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/''95.0.4638.54 Safari/537.36 Edg/95.0.1020.30'}resp = requests.get(url, timeout=30, headers=headers)resp.raise_for_status()resp.encoding = resp.status_coderespText = resp.textresp.close()return respTextexcept:return False
re正则表达式处理html数据
for provincialCapital in provincialCapitalList:if provincialCapital not in specialList:provincialCapital = p.get_pinyin(provincialCapital,'')url = f"https://www.tianqi.com/{provincialCapital}"text = re.finditer(r'<p class="now"><b>(?P<temperature>.*?)</b><i>℃</i></p>',getHtmlText(url),re.S)for it in text:temperatureList.append(int(it.group('temperature')))else:if provincialCapital == '澳门':url = "http://www.weather.com.cn/weather/101330101.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '上海':url = "http://www.weather.com.cn/weather/101020100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '天津':url = "http://www.weather.com.cn/weather/101030100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '北京':url = "http://www.weather.com.cn/weather/101010100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '香港':url = "http://www.weather.com.cn/weather/101320101.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))
可视化数据
Map方法将数据可视化并在当前目录下生产html文件
c = (Map(init_opts=opts.InitOpts(width="1000px", height="600px")) # 可切换主题.set_global_opts(title_opts=opts.TitleOpts(title=f"{time}全国省会各地温度"),visualmap_opts=opts.VisualMapOpts(min_=minTemperature,max_=minTemperature+20,range_text=['实时温度区间', ''], # 分区间is_piecewise=True, # 定义图例为分段型,默认为连续的图例pos_top="middle", # 分段位置pos_left="left",orient="vertical",split_number=10 # 分成10个区间)).add("实时温度", printList, maptype="china").render("温度.html"))
效果如图
全部代码如下
from pyecharts.charts import Map
from pyecharts import options as opts
import requests
import re
from xpinyin import Pinyin
from datetime import datetimedef getHtmlText(url):try:headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/''95.0.4638.54 Safari/537.36 Edg/95.0.1020.30'}resp = requests.get(url, timeout=30, headers=headers)resp.raise_for_status()resp.encoding = resp.status_coderespText = resp.textresp.close()return respTextexcept:return Falsedef getMap():provincialCapitalList = ['乌鲁木齐','拉萨','西宁','兰州','成都','昆明','银川','西安','重庆','贵阳','南宁','海口','台北','广州','福州','长沙','南昌','杭州','武汉','合肥','南京','郑州','太原','石家庄','济南','呼和浩特','沈阳','长春','哈尔滨','上海','天津','北京','澳门','香港']provinceList = ['新疆','西藏','青海','甘肃','四川','云南','宁夏','陕西','重庆','贵州','广西','海南','台湾','广东','福建','湖南','江西','浙江','湖北','安徽','江苏','河南','山西','河北','山东','内蒙古','辽宁','吉林','黑龙江','上海','天津','北京','澳门','香港']specialList = ['上海','天津','北京','澳门','香港']p = Pinyin()temperatureList = []for provincialCapital in provincialCapitalList:if provincialCapital not in specialList:provincialCapital = p.get_pinyin(provincialCapital,'')url = f"https://www.tianqi.com/{provincialCapital}"text = re.finditer(r'<p class="now"><b>(?P<temperature>.*?)</b><i>℃</i></p>',getHtmlText(url),re.S)for it in text:temperatureList.append(int(it.group('temperature')))else:if provincialCapital == '澳门':url = "http://www.weather.com.cn/weather/101330101.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '上海':url = "http://www.weather.com.cn/weather/101020100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '天津':url = "http://www.weather.com.cn/weather/101030100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '北京':url = "http://www.weather.com.cn/weather/101010100.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))if provincialCapital == '香港':url = "http://www.weather.com.cn/weather/101320101.shtml"text = re.finditer(r'<div class="con today clearfix">.*?<p class="tem">.*?<i>(?P<temperature>.*?)℃',getHtmlText(url), re.S)for it in text:temperatureList.append(int(it.group('temperature')))printList = [list(data) for data in zip(provinceList, temperatureList)]minTemperature = min(temperatureList)time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')c = (Map(init_opts=opts.InitOpts(width="1000px", height="600px")) .set_global_opts(title_opts=opts.TitleOpts(title=f"{time}全国省会各地温度"),visualmap_opts=opts.VisualMapOpts(min_=minTemperature,max_=minTemperature+20,range_text=['实时温度区间', ''], is_piecewise=True, pos_top="middle", pos_left="left",orient="vertical",split_number=10 )).add("实时温度", printList, maptype="china").render("温度.html"))if __name__ == "__main__":getMap()
python实现全国省会当前温度可视化相关推荐
- python实现全国省会城市随机出题
import randomcapitals = {'北京': '北京', '天津': '天津', '上海': '上海', '重庆': '重庆', '内蒙古': '呼和浩特', '广西': '南宁', ...
- 基于 Python 的全国空气质量监测与可视化分析平台
温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 空气质量优劣程度与一个城市的综合竞争力密切相关,它直接影响到投资环境和居民健康,因此越来越受到政府和 ...
- python全栈(中国历史天气可视化系统)
在前面博客中写过python爬虫爬取各个城市历史天气及数据可视化,感觉还是有点粗糙,本文章是借这个例子抛砖引玉,写出个更NB的python全栈项目. 此项目预览页面全国各城市天气可视化系统 scrap ...
- Python爬取天气数据及可视化分析!
来源丨Python之王 Python爬取天气数据及可视化分析 说在前面 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向.相对湿度.空气质量等成为关注的焦点.本 ...
- python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...
- Python爬取天气数据及可视化分析
Python爬取天气数据及可视化分析 文章目录 Python爬取天气数据及可视化分析 说在前面 1.数据获取 请求网站链接 提取有用信息 保存csv文件 2.可视化分析 当天温度变化曲线图 当天相对湿 ...
- 使用Pyecharts进行全国水质TDS地图可视化全过程1:总体过程简述
目录 一.效果图 二.实现过程1:数据来源及清洗 三.实现过程2:数据分析 四.实现过程3:数据可视化 分享使用Pyecharts进行全国水质TDS地图可视化的全过程. 一.效果图 本次对全国TDS进 ...
- 【23年1月17日】基于Flask技术的全国气象数据采集及可视化分析系统,支持城市定制服务
基于Flask技术的全国气象数据采集及可视化分析系统 项目获取 项目简介 项目功能 项目技术 运行截图 特别说明 项目源码 项目获取 项目下载地址:是云猿实战 项目经过多人测试运行,可以确保100%成 ...
- python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵
python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵 目录 python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵 #模型 ...
最新文章
- Windows 2000/XP 注册表终极修改(转载)
- Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
- Shell基础:变量类型 运算符
- python—多进程之进程的创建(一)
- java 编译时找不到同一包中的文件_Java基础笔试练习(七)
- Linq 数据库操作(增删改查)
- 触发器-当表1插入数据时将表1的数据插入表2
- 服务器运行程序 网络错误怎么办,网站出现:ldquo;/rdquo;应用程序中的服务器错误。该如何解决?_已解决 - 阿里巴巴生意经...
- [c#]喜马拉雅FM音频批量下载器开发手记
- 网络防火墙开发二三事 转
- 英语作文 计算机新技术对生活的影响,科技的影响高中英语作文3篇
- JAVA跑步计时器app_坚持跑步神器app
- windows无法连接到某个wifi_Windows无法连接到无线网络的解决办法
- 7-6 王牌特工3 (15 分)
- 大屏:页面在不同比例屏幕的显示适配与字体随屏幕改变而改变(字体随屏幕分辨率改变自适应的问题)
- 数据分析在互联网金融的应用
- 华为虚拟防火墙互通和访问外网
- ad7793编程c语言,AD7793在高精度温控设备中的应用
- 服务器重装系统用友u6,64系统装U6我用win7 64位旗舰版的系统,安装用
- 《机器学习技法》第13课笔记 深度学习