疫情地图爬取第二版

网易的数据接口的json格式不断在变化,从2月1日以来变化了三次,今天(2020.02.28)写了一个最新版本。
代码如下:

import requests
import pprint
import re
import pymysql
import time
import datetime
import pprint

import numpy as np
np.set_printoptions(threshold = 1e6)
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
url = 'https://c.m.163.com/ug/api/wuhan/app/data/list-total?t=1581346031174'  # 疫情公告网站
html = requests.get(url,headers=headers)
datas = html.json()

datas = datas['data']
conn = pymysql.connect("localhost", "root", "123456", "你的数据库名", charset='utf8' )


datas=datas['areaTree']

country_name = []
province_name = []
city_name = []
city_id = []
today_confirm = []
today_suspect = []
today_heal = []
today_dead =[]
total_confirm = []
total_dead = []
total_suspect = []
total_heal = []
time = []
summ = [country_name,province_name,city_name,city_id,today_confirm,today_dead,today_suspect,today_heal,total_confirm,total_dead,total_suspect,total_heal,time]

for data in datas:
    if data['children']:
        guojia=data['children']
        # pprint.pprint(data['id'])
        print("*******************")

        for province in guojia:
            if province['children']:
                for city in province['children']:
                    country_name.append(data['name'])
                    province_name.append(province['name'])
                    today_confirm.append(city['today']['confirm'])
                    today_suspect.append(city['today']['suspect'])
                    today_heal.append(city['today']['heal'])
                    today_dead.append(city['today']['dead'])
                    total_confirm.append(city['total']['confirm'])
                    total_suspect.append(city['total']['suspect'])
                    total_heal.append(city['total']['heal'])
                    total_dead.append(city['total']['dead'])
                    city_name.append(city['name'])
                    city_id.append(city['id'])
                    time.append(city['lastUpdateTime'])
            else:
                country_name.append(data['name'])
                province_name.append(province['name'])
                today_confirm.append(province['today']['confirm'])
                today_suspect.append(province['today']['suspect'])
                today_heal.append(province['today']['heal'])
                today_dead.append(province['today']['dead'])
                total_confirm.append(province['total']['confirm'])
                total_suspect.append(province['total']['suspect'])
                total_heal.append(province['total']['heal'])
                total_dead.append(province['total']['dead'])
                city_name.append(province['name'])
                city_id.append(province['id'])
                time.append(province['lastUpdateTime'])

    else:
        city_id.append(data['id'])
        country_name.append(data['name'])
        province_name.append('')
        city_name.append('')
        today_confirm.append(data['today']['confirm'])
        today_suspect.append(data['today']['suspect'])
        today_heal.append(data['today']['heal'])
        today_dead.append(data['today']['dead'])
        total_confirm.append(data['total']['confirm'])
        total_suspect.append(data['total']['suspect'])
        total_heal.append(data['total']['heal'])
        total_dead.append(data['total']['dead'])
        time.append(city['lastUpdateTime'])
shuzus=np.transpose(summ)
for i in range(len(shuzus)):
    for j in range(len(shuzus[0])):
        if shuzus[i][j] == None:
            shuzus[i][j] = 0
print(shuzus)
i=0
for shuzu in shuzus:
    i=i+1
    sql = "insert into 你的数据表名 (area_id,country_name,province_name,city_name,today_confirm,today_dead,today_suspect,today_heal,total_confirm,total_dead,total_suspect,total_heal,update_time) values ('{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}','{}');".format(
        shuzu[3],shuzu[0], shuzu[1], shuzu[2],shuzu[4], shuzu[5], shuzu[6], shuzu[7],
        shuzu[8], shuzu[9], shuzu[10], shuzu[11], shuzu[12])
    print("已经插入{}条数据".format(i))
    try:
        conn.query(sql)
        conn.commit()


    except Exception as e:
        print(e)
        pass
        conn.close()

本人最近在学Springboot,还要上网课hhhhhh,Python代码存在很多冗余或者是不规范有点没时间改了,希望大家指出,一起学习进步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值