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 ...
随机推荐
- a 标签 href 失效 和ajax的类型
Jquery Ajax type的4种类型 Ajax type这个里面填什么呢?通常大家都会说get和post.那么还有2个是什么呢 $.ajax({ url: 'http://www.cnblo ...
- php 23种设计模型 - 模板方法模式
模板模式 模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.先制 ...
- egg中使用sequelize事务,实现原子性
let transaction; try { // 建立事务对象 transaction = await this.ctx.model.transaction(); const house = awa ...
- 从零开始,开发一个 Web Office 套件(9):拖动鼠标选中文字 Edge Case
这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...
- LOTO新型号支持串口蓝牙示波器
LOTO串口/蓝牙示波器面世 LOTO一直专注在虚拟示波器领域,以USB虚拟示波器为基础,扩展了很多功能模块,可以把Windows示波器,信号源,逻辑分析仪,频谱分析,数据记录,安卓手机平板支持,隔离 ...
- CF594D题解
我不会数据结构/kk 我想题意应该十分清楚了. 我们知道 \(\varphi(p^k)=p^{k-1}(p-1)\),那么我们考虑将一个询问下放到右端点,然后往右移动右端点并更新每个左端点到右端点的答 ...
- CodeGym-17~20
读文章 0.如果是基本数据类型的话,在数组中就存储特定的值:如果是对象的话,在数组中就是存储对象的引用. 1.数组本身就是对象 再读文章 0.Arrays.sort(array); Arrays.to ...
- php——新闻项目改写
主要思路:遵守java开发规范,保持接口一致性 如何保持接口的一致性: (1).url的一致性:使用@RequestingMapping注解 (2).参数的一致性: 使用@ReuqestParam注解 ...
- linux如何通过文件2,3找回文件1?
查看系统是否有diff,patch命令 diff一般系统自带 patch下载 (yum install patch -y) 现在开始演示 我的系统里有1和2两个文件 使用 diff 1 2 > ...
- python 命令行参数学习(一)
用了这么久,还没怎么学习python的命令行参数,是在惭愧. 参考文章地址:http://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.htm ...