基于Python,写入到Mysql,通过php进行可视化展示

可视化可参考http://covid.papapa.kim

#coding=utf-8
import requests,json,time,pymysql,os

def db_connet():
    global db,cursor
    db = pymysql.connect(host='localhost',
                         user='xxxx',
                         password='xxxx',
                         database='xxx')

    cursor = db.cursor() # 使用 cursor() 方法创建一个游标对象 cursor

    #cursor.execute("SELECT VERSION()") # 使用 execute()  方法执行 SQL 查询
    #data = cursor.fetchone() # 使用 fetchone() 方法获取单条数据
    #print("Database version : %s " % data)
    #db.close() # 关闭数据库连接

def middle_high():

    url = "https://eyesight.news.qq.com/sars/riskarea?callback=jQuery35105353789618760572_1638337103000&_=1638337103001"
    url_text = requests.get(url).text
    url_text = url_text.replace("jQuery35105353789618760572_1638337103000(","").replace(")","")
    cao = json.loads(url_text)["data"]
    cursor.execute("truncate table RiskArea")  # 执行清空表
    for i in cao:
        location = dict(i)
        if location["type"] == '1':
            #print("中风险地区:"+location["area"])
            #gao.append("中风险地区:"+location["area"])
            sql = "INSERT INTO RiskArea(area,risk) \
            VALUES ('%s', '%s')" % (location["area"],location["type"])
            cursor.execute(sql)
            db.commit()
        elif location["type"] == '2':
            #print("高风险地区:" + location["area"])
            #gao.append("高风险地区:" + location["area"])
            sql = "INSERT INTO RiskArea(area,risk) \
            VALUES ('%s', '%s')" % (location["area"], location["type"])
            cursor.execute(sql)
            db.commit()

def low():

    url2 = "https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=statisGradeCityDetail"
    url2_text = requests.get(url2).text
    cao2 = json.loads(url2_text)["data"]
    cursor.execute("truncate table low_risk")  # 执行清空表
    for i in cao2["statisGradeCityDetail"]:
        #print(i["province"],i["city"],i["grade"],i["date"])
        sql = "INSERT INTO low_risk(province,area,risk,time) \
                    VALUES ('%s', '%s','%s','%s')" % (i["province"],i["city"],i["grade"],i["date"])
        cursor.execute(sql)
        db.commit()

def china(): #国内疫情最新动态

    url = "https://opendata.baidu.com/data/inner?tn=reserved_all_res_tn&dspName=iphone&from_sf=1&dsp=iphone&resource_id=28565&alr=1&query=%E5%9B%BD%E5%86%85%E6%96%B0%E5%9E%8B%E8%82%BA%E7%82%8E%E6%9C%80%E6%96%B0%E5%8A%A8%E6%80%81&cb=jsonp_1638431144029_71210"
    url_text = requests.get(url).text
    url_text = url_text.replace("jsonp_1638431144029_71210(","").replace(")","")
    url_text = json.loads(url_text)["Result"]
    cursor.execute("truncate table news")  # 执行清空表
    for i in url_text:
        #print(i)
        i = eval(json.dumps(i["DisplayData"]["result"]["items"]))
        for ii in i:

            times = time.localtime(int(ii["eventTime"]))
            #print(ii["eventDescription"])
            #print(ii["eventUrl"])
            #print(ii["siteName"])
            #print(type(time.strftime("%Y-%m-%d %H:%M:%S", times)))
            #print(ii["eventDescription"], time.strftime("%Y-%m-%d %H:%M:%S", times),ii["eventUrl"],ii["siteName"])
            sql = "INSERT INTO news(title,time,referer,url) \
            VALUES ('%s', '%s','%s','%s')" % (ii["eventDescription"],time.strftime("%Y-%m-%d %H:%M:%S", times),ii["siteName"],ii["eventUrl"])
            cursor.execute(sql)
            db.commit()

def outhe(): #国外疫情最新动态
    url = "https://opendata.baidu.com/data/inner?tn=reserved_all_res_tn&dspName=iphone&from_sf=1&dsp=iphone&resource_id=28565&alr=1&query=%E5%9B%BD%E5%A4%96%E6%96%B0%E5%9E%8B%E8%82%BA%E7%82%8E%E6%9C%80%E6%96%B0%E5%8A%A8%E6%80%81&cb=jsonp_1638431144030_90807"

def new_info():
    notice = "https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_ww_today_notice&callback=jQuery35105067497180459282_1638497684075&_=1638497684076"
    notice_text = requests.get(notice).text.replace("jQuery35105067497180459282_1638497684075(","").replace(")","")
    notice_text = json.loads(notice_text)["data"]
    notice_text = eval(notice_text)
    cursor.execute("truncate table Newinfo")  # 执行清空表
    for i in notice_text:
        #print(i["showNotice"])
        sql = "INSERT INTO Newinfo(notice) VALUES ('%s')" % (i["showNotice"])
        cursor.execute(sql)
        db.commit()

if __name__ == '__main__':
    db_connet()
    try:
        middle_high()
        low()
        china()
        new_info()
    except:
        os.system("echo error > /root/python_error")
    db.close()


本当の声を響かせてよ