代码:

import requests
import pymysql
import json
from pyecharts import options as opts
from pyecharts.charts import Map def create(): # 连接数据库
db = pymysql.connect(host = 'localhost', user = 'root', password ='258000', database = 'yiqing',charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS proyiqing") # 使用预处理语句创建表
sql = """CREATE TABLE proyiqing (
Id INT PRIMARY KEY AUTO_INCREMENT,
update_time varCHAR(255),
provinse varchar(255),
today_confirm varchar(255),
total_confirm varchar(255),
now_confirm varchar(255),
total_dead varchar(255),
total_heal varchar(255))"""
#update_time,provinse,today_confirm,total_confirm,now_confirm,total_dead,total_heal
cursor.execute(sql) #关闭数据库连接
db.close() def insert(value): # 连接数据库
db = pymysql.connect(host = 'localhost', user = 'root', password ='258000', database = 'yiqing',charset='utf8') # 使用 execute() 方法执行 SQL,如果表存在则删除
cursor = db.cursor() # 使用预处理语句插入数据
sql = "INSERT INTO proyiqing(update_time,provinse,today_confirm,total_confirm,now_confirm,total_dead,total_heal) VALUES ( %s,%s,%s,%s,%s,%s,%s)"
#update_time,provinse,today_confirm,total_confirm,now_confirm,total_dead,total_heal try:
cursor.execute(sql, value)
db.commit()
print('插入数据成功')
except:
db.rollback()
print("插入数据失败")
db.close() create() # 创建表 #目标网站
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
headers = {
'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36'
} #请求资源,获取相应内容
r = requests.get(url, headers) # 将响应信息进行json格式化
res = json.loads(r.text)
data = json.loads(res['data']) #世界疫情
lists = ['截至时间:' + str(data['lastUpdateTime']) + '\n'
'全国确诊人数:' + str(data['chinaTotal']['confirm']) + '\n'
'今日新增确诊:' + str(data['chinaAdd']['confirm']) + '\n'
'全国疑似:' + str(data['chinaTotal']['suspect']) + '\n'
'今日新增疑似:' + str(data['chinaAdd']['suspect']) + '\n'
'全国治愈:' + str(data['chinaTotal']['heal']) + '\n'
'今日新增治愈:' + str(data['chinaAdd']['heal']) + '\n'
'全国死亡:' + str(data['chinaTotal']['dead']) + '\n'
'今日新增死亡:' + str( data['chinaAdd']['dead']) + '\n']
result = ''.join(lists)
with open('疫情查询.txt', 'w+', encoding="utf-8") as f:
f.write(result + '\n') #更新时间
update_time = data['lastUpdateTime'] #保存全国各省现有确诊数据
province_detals = []
confirm_detals = [] #省份疫情
for pro in data['areaTree'][0]['children']:
provinse = pro["name"] #省名
today_confirm = pro["today"]["confirm"]
total_confirm = pro["total"]["confirm"]
now_confirm = pro["total"]["nowConfirm"]
total_dead = pro["total"]["dead"]
total_heal = pro["total"]["heal"]
province_detals.append(provinse)
confirm_detals.append(now_confirm)
#insert((update_time,provinse,today_confirm,total_confirm,now_confirm,total_dead,total_heal))#存入数据库 #建立一一对应关系
data_zip = zip(province_detals,confirm_detals)
data_list = list(data_zip) #可视化 matplot 和 pyechart
map = Map(opts.InitOpts(width='1900px',height='800px')).add(series_name="中国疫情分布",
data_pair=data_list,#输入数据
maptype="china",#地图类型
is_map_symbol_show=False#显示标记
) #不显示国家名称
map.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) #设置全局配置项
map.set_global_opts(title_opts=opts.TitleOpts(title="中国疫情情况"),#设置图标题
visualmap_opts=opts.VisualMapOpts(
is_piecewise=True,
pieces=[
{"min":1,"max": 10},
{"min": 10, "max": 20},
{"min": 20, "max": 30},
{"min": 30, "max": 40},
{"min": 40, "max": 50},
{"min": 50, "max": 60},
{"min": 60, "max": 70},
{"min": 70, "max": 80},
{"min": 80, "max": 90},
{"min": 90, "max": 100},
{"min": 100}]
)) #显示图例
map.render("中国疫情分布情况.html")

效果:

Python:爬取全国各省疫情数据并在地图显示的更多相关文章

  1. 利用python爬取58同城简历数据

    利用python爬取58同城简历数据 利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用pyth ...

  2. 手把手教你使用Python爬取西刺代理数据(下篇)

    /1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...

  3. python爬虫学习之爬取全国各省市县级城市邮政编码

    实例需求:运用python语言在http://www.ip138.com/post/网站爬取全国各个省市县级城市的邮政编码,并且保存在excel文件中 实例环境:python3.7 requests库 ...

  4. python爬取豆瓣电影信息数据

    题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

  5. 告诉你那里最受欢迎,python爬取全国13个城市旅游数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  6. python 爬取猫眼电影top100数据

    最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...

  7. 一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. 很多人学习python,不知道从何学起.很多人学习python,掌握了 ...

  8. Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢

  9. 利用python爬取全国水雨情信息

    分析 我们没有找到接口,所以打算利用selenium来爬取. 代码 import datetime import pandas as pd from bs4 import BeautifulSoup ...

随机推荐

  1. ASP.NET Core 6框架揭秘实例演示[18]:HttpClient处理管道

    我们知道ASP.NET的核心就是由中间件组成的请求处理管道,HttpClient也采用了类似的设计.HttpClient管道由一组HttpMessageHandler对象构成,这些HttpMessag ...

  2. 使用 MobaXterm 连接矩池云 GPU服务器

    Host Name(主机名):hz.matpool.com 或 hz-t2.matpool.com,请以您 SSH 中给定的域名为准. Port(端口号):矩池云租用记录里 SSH 链接里冒号后的几位 ...

  3. Mock平台2-Java Spring Boot框架基础知识

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 认识Spring Boot 在N年前的大学时代想要开发一个Web服务使用的还是SSH框架(struts+spring+hibernate) ...

  4. PHP 的网站主要攻击方式有哪些?

    1.命令注入(Command Injection)2.eval 注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Sc ...

  5. Java入土---Java基础(一)

    注释,标识符,关键字 注释类似于我们的随手记,并且不会被执行,是写给我们自己看的,书写注释是一个非常好的习惯 重点来了,Java中注释有三种:单行注释,多行注释,文档注释 单行注释 "//& ...

  6. ROS路由器DHCP地址不够使用解决办法!

    由于这段时间公司使用ROS6.2+AC控制器+AP的方案做了公WIFI覆盖,但最近发现地址被用完. 如果使用默认的地址192.168.1.1-192.168.8.254,最多只有254个地址可用,但内 ...

  7. Lua中如何实现类似gdb的断点调试—09支持动态添加和删除断点

    前面已经支持了几种不同的方式添加断点,但是必须事先在代码中添加断点,在使用上不是那么灵活方便.本文将支持动态增删断点,只需要开一开始引入调试库即可,后续可以在调试过程中动态的添加和删除断点.事不宜迟, ...

  8. CF回顾《二分类》

    cf Educational Codeforces Round 115 (Rated for Div. 2) C题 类型:二分查找. 中文题目: C.删除两项内容 Monocarp有一个由n个整数组成 ...

  9. 分布式锁用Redis与Zookeeper的使用

    为什么用分布式锁?   在讨论这个问题之前,我们先来看一个业务场景: 系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足够了才会 ...

  10. Python可变参数*args和**kwargs

    本文我们将通过示例了解 Python函数的可变参数*args和 **kwargs的用法. 知识预备:Python 函数和 Python 函数参数 在Python编程中,我们定义一个函数来生成执行类似操 ...