基于python+MySQL的新冠肺炎疫情数据分析及可视化
项目环境:pycharm python3.9 数据库:MySQL8
第三方库:urllib、urllib3、requests、traceback、pymysql、json、jieba、wordcloud、requests、sys、time、flask库,做好前期准备。
项目设计文档目录:
编写代码(部分重要代码)
这里用url获取响应从腾讯新闻中获取数据,并获取的是text字节形式的内容。代码中url是获取数据的目标网页,这边是获取了腾讯的两个网页。
res1 = json.loads(r1.text) res2 = json.loads(r2.text) data_all1 = json.loads(res1["data"]) data_all2 = json.loads(res2["data"])
这里是将网页信息从转化为字典text,方便我们进行抓取数据。Json加载data中的数据到新的变量dataall。
def get_conn(): # 建立连接 conn = pymysql.connect(host="###", user="###", password="###", db="cov", charset="utf8") # c创建游标 cursor = conn.cursor() return conn, cursor def close_conn(conn, cursor): if cursor: cursor.close() if conn: conn.close()
建立与数据库(cov)的连接,使得能从数据库中数据在运行图中显示
def update_hotsearch():
cursor = None
conn = None
try:
context = get_baidu_hot()
print(f"{time.asctime()}开始更新数据")
conn,cursor = get_conn()
sql = "insert into hotsearch(dt,content) values(%s,%s)"
ts = time.strftime("%Y-%m-%d %X")
for i in context:
cursor.execute(sql,(ts,i))
conn.commit()
print(f"{time.asctime()}数据更新完毕")
except:
traceback.print_exc()
finally:
close_conn(conn,cursor)
对网页中数据的变化在数据库中进行实时更新
def get_c2_data(): sql = "select province,sum(confirm) from details " "where update_time=(select update_time from details " "order by update_time desc limit 1) " "group by province" res = query(sql) return res
使用echarts绘制中国地图模块
模块设计:
