1、题目要求

  

 

 

 

 

 

 

2、整体思想

因为之前已经做过了疫情数据的爬取,这次的要去主要是将echarts可视化、利用Jsoup爬取疫情数据基础上来进行调用与完善结合起来,然后在android端展示出来疫情地图。

 

 

3、代码实现


import pymysqlimport requestsimport json# 放入要爬的urlurl_foreign = "https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist"url_inside = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"# 设置header做一个防爬机制header = {"user-agent": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Mobile Safari/537.36"}# 获取response的jsonresponse_foreign = requests.get(url_foreign, headers=header)response_inside = requests.get(url_inside,headers=header)data_foreign = json.loads(response_foreign.content.decode())data_str_foreign = data_foreign['data']data_inside = json.loads(response_inside.content.decode())data_str_inside = data_inside['data']data_json_inside = json.loads(data_str_inside)# 连接数据库db = pymysql.connect(host='39.97.109.245', port=3306, user='root', password='abc456', db='yiqing', charset='utf8')#使用cursor方法生成一个游标cursor = db.cursor()confirmed_total = 0suspected_total = 0dead_total = 0healed_total = 0# 更新时间lastUpdateTime = data_json_inside['lastUpdateTime']# 取出外国的数据for foreignData in data_str_foreign: countryName = foreignData['name'] confirmed = foreignData['confirm'] confirmed_total += confirmed suspected = foreignData['suspect'] suspected_total += suspected dead = foreignData['dead'] dead_total += dead healed = foreignData['heal'] healed_total += healed # 将外国数据上传到数据库 sql = "insert into worlddata(id,countryname,confirmed,suspected,dead,healed,lastupdateTime) values({},'{}','{}','{}','{}', '{}','{}')".format(0, countryName, confirmed, suspected, dead, healed, lastUpdateTime) cursor.execute(sql) db.commit()# 取出中国的数据ChinaName = data_json_inside['areaTree'][0]['name']china_confirmed = data_json_inside['areaTree'][0]['total']['confirm']confirmed_total += china_confirmedchina_suspected = data_json_inside['areaTree'][0]['total']['suspect']suspected_total += china_suspectedchina_healed = data_json_inside['areaTree'][0]['total']['heal']healed_total += china_healedchina_dead = data_json_inside['areaTree'][0]['total']['dead']dead_total += dead_total# 将中国数据上传到数据库sql_china = "insert into worlddata(id,countryname,confirmed,suspected,dead,healed,lastupdateTime) values({},'{}','{}','{}','{}', '{}','{}')".format( 0, ChinaName, china_confirmed, china_suspected, china_dead, china_dead, lastUpdateTime)cursor.execute(sql_china)db.commit()# 将汇总数据上传到数据库sql_total = "insert into worlddata(id,countryname,confirmed,suspected,dead,healed,lastupdateTime) values({},'{}','{}','{}','{}', '{}','{}')".format(0, 0, confirmed_total, suspected_total, dead_total, healed_total, lastUpdateTime)cursor.execute(sql_total)db.commit()

posted on 2020-06-11 17:34  迎新  阅读(146)  评论(0编辑  收藏  举报