全世界疫情实时查询系统(第三阶段)
实现思路:
使用Android Studio连接MySQL数据库获取数据;
编写工具类实现数据提取;
页面数据绑定,进行数据的展示;
使用python爬取全球疫情的数据;
import requests import time, json import sys; import pymysql def get_wangyi_request(): url = 'https://c.m.163.com/ug/api/wuhan/app/data/list-total' headers = { 'accept': '*/*', 'accept-encoding': 'gzip,deflate,br', 'accept-language': 'en-US,en;q=0.9,zh-CN;q = 0.8,zh;q = 0.7', 'origin': 'https://wp.m.163.com', 'referer': 'https://wp.m.163.com/', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-ite', 'user-agent': 'Mozilla/5.0(WindowsNT10.0;Win64;x64) AppleWebKit/37.36 (KHTML, likeGecko) Chrome/82.0.4056.0 Safari/537.36 Edg/82.0.432.3' } result = requests.get(url, headers=headers) return result def print_mess1(string: str, dict1total: dict): sys.stdout.write(string + '确诊: ' + str(dict1total['confirm'] if dict1total['confirm'] != None else 0)) sys.stdout.write(' ') sys.stdout.write(string + '疑似: ' + str(dict1total['suspect'] if dict1total['suspect'] != None else 0)) sys.stdout.write(' ') sys.stdout.write(string + '治愈: ' + str(dict1total['heal'] if dict1total['heal'] != None else 0)) sys.stdout.write(' ') sys.stdout.write(string + '死亡: ' + str(dict1total['dead'] if dict1total['dead'] != None else 0)) if __name__ == '__main__': result = get_wangyi_request() json_str = json.loads(result.text)['data'] # print(json_str.keys()) # dict_keys(['chinaTotal', 'chinaDayList', 'lastUpdateTime', 'areaTree']) print(json_str['lastUpdateTime']) countryname_list = json_str['areaTree'] # 每个省份包含如下的键 # dict_keys(['today', 'total', 'extData', 'name', 'id', 'lastUpdateTime', 'children']) conn = pymysql.connect( host='localhost', # 我的IP地址 port=3306, # 不是字符串不需要加引号。 user='root', password='101032', db='test', charset='utf8' ) cursor = conn.cursor() # 获取一个光标 confirmed_total = 0 suspected_total = 0 dead_total = 0 healed_total = 0 id = 0; for dict in countryname_list: sql = 'insert into yiqing_world (countryname,confirmed,suspected,dead,healed,lastUpdateTime,id) values (%s,%s,%s,%s,%s,%s,%s);' countryname = dict['name'] confirmed = dict['total']['confirm'] confirmed_total += confirmed suspected = dict['total']['suspect'] suspected_total += suspected healed = dict['total']['heal'] dead_total += healed dead = dict['total']['dead'] dead_total += dead lastUpdateTime = dict['lastUpdateTime'] id=id+1 sys.stdout.write( dict['name'] + ' ') cursor.execute(sql, [countryname,confirmed,suspected,dead,healed,lastUpdateTime,id]) print() conn.commit() cursor.close() conn.close()
项目计划总结表:
日期 | 编程 | 完善程序 | 测试程序 | 参考资料 | 日总结 |
3.17 | 16:00---17:30 | 1.5 | 1.5 | ||
3.18 | 14:00---17:00 | 1.5 | 0.5 | ||
3.19 | 14:00---15:30 | 0.5 |
0.5 |
||
3.20 | 20:00---22:00 | 0.5 | |||
3.21 | 7:00---11:30 | 14:30---17:00 | 18:00---21:00 | 1.5 | 0.5 |
时间记录总结:
日期 | 开始 | 结束 | 中断时间 | 净时间 | 活动 | 备注 |
3.17 | 16:00 | 17:30 | 无 | 1.5 | 查阅资料、构思 | |
3.18 | 14:00 | 17:30 | 无 | 2.5 | 修改与测试、查阅资料 | |
3.19 | 14:00 | 15:30 | 无 | 1.5 | 修改与测试、查阅资料 | |
3.20 | 20:00 | 22:00 | 无 | 2 | 修改与测试、查阅资料 | |
3.21 | 7:00 | 11:30 | 0.5 | 4 | 修改与测试、查阅资料 | |
14:30 | 17:00 | 0.5 | 2 | 修改与测试、查阅资料 | ||
18:00 | 21:00 | 0.5 | 2.5 | 修改与测试、查阅资料 |
缺陷记录表:
日期 | 编号 | 类型 | 引入 | 排除 | 修复 | 修复时间 |
3.17 | 1 | 程序 | 编程 | 编译 | 构思思路、查阅资料 | |
3.18 | 2 | 程序 | 编程 | 编译 | 1小时 | |
3.19 | 3 | 程序 | 编程 | 编译 | 2小时 | |
3.20 | 4 | 程序 | 编程 | 编译 | 获取不到数据 | 3小时 |
3.21 | 5 | 程序 | 编程 | 编译 | 数据页面绑定 | 1小时 |