zoukankan      html  css  js  c++  java
  • python爬取疫情信息

    疫情可视化首先需要对疫情信息进行爬取

      1 import requests
      2 import json
      3 import pymysql
      4 conn = pymysql.connect(host="localhost", user="root", password="0424wyhhxx", database="yiqing", charset='utf8')
      5 
      6 
      7 def Down_data():
      8     url = "https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5"
      9     headers = {
     10         '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'
     11     }
     12     r = requests.get(url, headers)
     13     res = json.loads(r.text)
     14     data_res = json.loads(res['data'])
     15     return data_res
     16 
     17 
     18 def Parse_data1():
     19     data = Down_data()
     20     # 建立游标
     21     cursor = conn.cursor()
     22 
     23 
     24     sql = 'insert into china(截止时间,全国确诊人数,今日新增确诊,全国疑似,今日新增疑似,全国治愈,今日新增治愈,全国死亡,今日新增死亡) values(%s,%s,%s,%s,%s,%s,%s,%s,%s) '
     25     data = (str(data['lastUpdateTime']), str(data['chinaTotal']['confirm']), str(data['chinaAdd']['confirm']), str(data['chinaTotal']['suspect']), str(data['chinaAdd']['suspect']), str(data['chinaTotal']['heal']), str(
     26         data['chinaAdd']['heal']), str(data['chinaTotal']['dead']), str(
     27         data['chinaAdd']['dead']))
     28     try:
     29         cursor.execute(sql, data)
     30         conn.commit()
     31     except Exception as e:
     32         print('插入数据失败', e)
     33         conn.rollback()  # 回滚
     34 
     35     # 关闭游标
     36     cursor.close()
     37     # 关闭连接
     38     conn.close()
     39 
     40 
     41 
     42 
     43 def Parse_data2():
     44     data3 = Down_data()
     45     data = Down_data()['areaTree'][0]['children']
     46     path = str()
     47 
     48     for i in data:
     49         if path in i['name']:
     50             for item in i['children']:
     51                 conn2 = pymysql.connect(host="localhost", user="root", password="0424wyhhxx", database="yiqing",
     52                                         charset='utf8')
     53                 cursor2 = conn2.cursor()
     54                 sql2 = 'insert into area(截止时间,地区,确诊人数,新增确诊,治愈,死亡) values(%s,%s,%s,%s,%s,%s) '
     55                 data2 =(str(data3['lastUpdateTime']), str(item['name']), str(item['total']['confirm']), str(item['today']['confirm']), str(item['total']['heal']), str(item['total']['dead']))
     56 
     57                 try:
     58                     cursor2.execute(sql2, data2)
     59                     conn2.commit()
     60                 except Exception as e:
     61                     print('插入数据失败', e)
     62                     conn2.rollback()  # 回滚
     63 
     64                 # 关闭游标
     65                 cursor2.close()
     66                 # 关闭连接
     67                 conn2.close()
     68 
     69 
     70 
     71 def Parse_data3():
     72     data3 = Down_data()
     73     data = Down_data()['areaTree'][0]['children']
     74     path = str()
     75 
     76     for i in data:
     77         if path in i['name']:
     78                 conn3 = pymysql.connect(host="localhost", user="root", password="0424wyhhxx", database="yiqing",
     79                                         charset='utf8')
     80                 cursor3 = conn3.cursor()
     81                 sql3 = 'insert into sheng(截止时间,地区,确诊人数,新增确诊,治愈,死亡) values(%s,%s,%s,%s,%s,%s) '
     82 
     83                 data5 =(str(data3['lastUpdateTime']), i['name'], i['total']['confirm'], i['today']['confirm'], i['total']['heal'], i['total']['dead'])
     84 
     85                 try:
     86                     cursor3.execute(sql3, data5)
     87                     conn3.commit()
     88                 except Exception as e:
     89                     print('插入数据失败', e)
     90                     conn3.rollback()  # 回滚
     91 
     92                 # 关闭游标
     93                 cursor3.close()
     94                 # 关闭连接
     95                 conn3.close()
     96 
     97 Down_data()
     98 Parse_data1()
     99 Parse_data2()
    100 Parse_data3()

    china表中数据:(全国)

     area表中数据:(地区)

     sheng表中数据:(省份)

     

  • 相关阅读:
    Linux--shell三剑客<sed>--07
    Linux--shell交互输入与循环语句--06
    Linux--shel分支语句--05
    Linux--shell grep与正则表达式--04
    Linux--shell编程原理--03
    Linux--shell重定向与文件处理命令--02
    Linux--shell的基本特性--01
    Docker数据卷
    Docker容器
    Docker的安装
  • 原文地址:https://www.cnblogs.com/znjy/p/14905954.html
Copyright © 2011-2022 走看看