Python:爬取全国各省疫情数据并在地图显示
代码:
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:爬取全国各省疫情数据并在地图显示的更多相关文章
- 利用python爬取58同城简历数据
利用python爬取58同城简历数据 利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用pyth ...
- 手把手教你使用Python爬取西刺代理数据(下篇)
/1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...
- python爬虫学习之爬取全国各省市县级城市邮政编码
实例需求:运用python语言在http://www.ip138.com/post/网站爬取全国各个省市县级城市的邮政编码,并且保存在excel文件中 实例环境:python3.7 requests库 ...
- python爬取豆瓣电影信息数据
题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...
- 告诉你那里最受欢迎,python爬取全国13个城市旅游数据
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- python 爬取猫眼电影top100数据
最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...
- 一篇文章教会你用Python爬取淘宝评论数据(写在记事本)
[一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. 很多人学习python,不知道从何学起.很多人学习python,掌握了 ...
- Python爬取网站上面的数据很简单,但是如何爬取APP上面的数据呢
- 利用python爬取全国水雨情信息
分析 我们没有找到接口,所以打算利用selenium来爬取. 代码 import datetime import pandas as pd from bs4 import BeautifulSoup ...
随机推荐
- winform中更新UI控件的方案介绍
这是一个古老的话题...直入主题吧! 对winfrom的控件来说,多线程操作非常容易导致复杂且严重的bug,比如不同线程可能会因场景需要强制设置控件为不同的状态,进而引起并发.加锁.死锁.阻塞等问题. ...
- 调用Visual Studio的cl.exe编译C/C++程序
@ 目录 调用Visual Studio的cl.exe编译C/C++程序 前言 1.查看VS的路径 2.添加环境变量 3.查看设置是否生效 4.配置Notepad++ 调用Visual Studio的 ...
- Mysql基础语法-建库-建表(增、删、改、查、表关联及子查询)
前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. ...
- mysql全量备份与增量备份
mysql全量备份与增量备份 1.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock ...
- 分享一些阅读Java相关框架源码的经验
昨天和部分网友进行了线上的交流,交流中有不少网友提到阅读源码比较难,不知道怎么上手.胖哥分享了一些个人经验,这里总结一下. 阅读源码实际上是Debug源码 其实所谓的阅读源码并不是单纯的阅读,而是调试 ...
- Rocket Mq 常用API 及简单运维
RocketMQ 常用API 消息 消息消费模式 消息消费模式由消费者来决定,可以由消费者设置MessageModel来决定消息模式. 消息模式默认为集群消费模式 consumer.setMessag ...
- HyBird App(混合应用)核心原理JSBridge
目录 app分类 HyBird App(混合应用) JSBridge介绍 优势及应用场景 JsBridge的核心 1.Web端调用Native端代码 1.1 拦截URL Schema 1.2 注入ap ...
- Git常见错误整理
参考文章 git 排错 fatal: 'git status --porcelain' failed in submodule abi/cpp 1 fatal: 'git status --porce ...
- C++ bind 和 ref
#include <functional>#include <iostream> void f(int& n1, int& n2, const int& ...
- Spring Boot 传参 序列化和反序列化
序列化 反序列化