获取数据

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实现全国省会当前温度可视化相关推荐

  1. python实现全国省会城市随机出题

    import randomcapitals = {'北京': '北京', '天津': '天津', '上海': '上海', '重庆': '重庆', '内蒙古': '呼和浩特', '广西': '南宁', ...

  2. 基于 Python 的全国空气质量监测与可视化分析平台

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 空气质量优劣程度与一个城市的综合竞争力密切相关,它直接影响到投资环境和居民健康,因此越来越受到政府和 ...

  3. python全栈(中国历史天气可视化系统)

    在前面博客中写过python爬虫爬取各个城市历史天气及数据可视化,感觉还是有点粗糙,本文章是借这个例子抛砖引玉,写出个更NB的python全栈项目. 此项目预览页面全国各城市天气可视化系统 scrap ...

  4. Python爬取天气数据及可视化分析!

    来源丨Python之王 Python爬取天气数据及可视化分析 说在前面 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向.相对湿度.空气质量等成为关注的焦点.本 ...

  5. python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码

    一.项目介绍 python商品评论数据采集与分析可视化系统 Flask框架.MySQL数据库. requests爬虫.可抓取指定商品评论.Echarts可视化.评论多维度分析.NLP情感分析.LDA主 ...

  6. Python爬取天气数据及可视化分析

    Python爬取天气数据及可视化分析 文章目录 Python爬取天气数据及可视化分析 说在前面 1.数据获取 请求网站链接 提取有用信息 保存csv文件 2.可视化分析 当天温度变化曲线图 当天相对湿 ...

  7. 使用Pyecharts进行全国水质TDS地图可视化全过程1:总体过程简述

    目录 一.效果图 二.实现过程1:数据来源及清洗 三.实现过程2:数据分析 四.实现过程3:数据可视化 分享使用Pyecharts进行全国水质TDS地图可视化的全过程. 一.效果图 本次对全国TDS进 ...

  8. 【23年1月17日】基于Flask技术的全国气象数据采集及可视化分析系统,支持城市定制服务

    基于Flask技术的全国气象数据采集及可视化分析系统 项目获取 项目简介 项目功能 项目技术 运行截图 特别说明 项目源码 项目获取 项目下载地址:是云猿实战 项目经过多人测试运行,可以确保100%成 ...

  9. python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵

    python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵 目录 python使用sklearn的ConfusionMatrixDisplay来可视化混淆矩阵 #模型 ...

最新文章

  1. Windows 2000/XP 注册表终极修改(转载)
  2. Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
  3. Shell基础:变量类型 运算符
  4. python—多进程之进程的创建(一)
  5. java 编译时找不到同一包中的文件_Java基础笔试练习(七)
  6. Linq 数据库操作(增删改查)
  7. 触发器-当表1插入数据时将表1的数据插入表2
  8. 服务器运行程序 网络错误怎么办,网站出现:ldquo;/rdquo;应用程序中的服务器错误。该如何解决?_已解决 - 阿里巴巴生意经...
  9. [c#]喜马拉雅FM音频批量下载器开发手记
  10. 网络防火墙开发二三事 转
  11. 英语作文 计算机新技术对生活的影响,科技的影响高中英语作文3篇
  12. JAVA跑步计时器app_坚持跑步神器app
  13. windows无法连接到某个wifi_Windows无法连接到无线网络的解决办法
  14. 7-6 王牌特工3 (15 分)
  15. 大屏:页面在不同比例屏幕的显示适配与字体随屏幕改变而改变(字体随屏幕分辨率改变自适应的问题)
  16. 数据分析在互联网金融的应用
  17. 华为虚拟防火墙互通和访问外网
  18. ad7793编程c语言,AD7793在高精度温控设备中的应用
  19. 服务器重装系统用友u6,64系统装U6我用win7 64位旗舰版的系统,安装用
  20. 《机器学习技法》第13课笔记 深度学习

热门文章

  1. 看华为技术专家的500页微服务架构笔记,感觉我格局太小
  2. Android9 短信恢复,如何免ROOT恢复手机上误删的短信?安卓手机短信恢复交通
  3. 激活海量数据价值,实现生产过程优化
  4. 电脑锁定之后重新打开屏幕,双屏幕只能显示一个(娱乐向记录,技术向勿入)
  5. 南大软件工程2019考研复试上机题+个人答案
  6. Linux基础(day61)
  7. 5G市场乱象:用户被擅自开通套餐,资费贵了网速没快
  8. Unify学习笔记2
  9. 这可能是2023全网最详细的python安装教程(windows)
  10. Spring Boot项目结构