Esempio n. 1
0
class News(BaseFun):
    url = BaseFun.prov_url()

    def __init__(self):
        self.res_data = requests.get(self.url)
        self.response_data = self.res_data.json()
        self.conn = BaseFun.conn_database('ncov')
        BaseFun.write_json(BASE_DIR + '/data/api_desc.json',
                           self.response_data)

    def read_data(self):
        res_data = BaseFun.read_json(BASE_DIR + '/data/api_desc.json')
        return res_data['newslist'][0]['news']

    def insets_sql(self):
        for res in self.read_data():
            if 'provinceName' in res.keys():
                # 更新sql语句
                sql = "INSERT INTO api_news (id, pubDate, pubDateStr, title, summary,infoSource,sourceUrl, provinceId, provinceName, createTime,modifyTime) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE id = id"

                # 获取一个光标
                cursor = self.conn.cursor()

                # 连接并执行
                cursor.execute(sql, [
                    res['id'],
                    time_change(res['pubDate']), res['pubDateStr'],
                    res['title'], res['summary'], res['infoSource'],
                    res['sourceUrl'], res['provinceId'], res['provinceName'],
                    time_change(res['createTime']),
                    time_change(res['modifyTime'])
                ])
            else:
                sql = "INSERT INTO api_news (id, pubDate, pubDateStr, title, summary,infoSource,sourceUrl, provinceId, createTime, modifyTime) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE id = id"

                # 获取一个光标
                cursor = self.conn.cursor()
                cursor.execute(sql, [
                    res['id'],
                    time_change(res['pubDate']), res['pubDateStr'],
                    res['title'], res['summary'], res['infoSource'],
                    res['sourceUrl'], res['provinceId'],
                    time_change(res['createTime']),
                    time_change(res['modifyTime'])
                ])

                # 涉及写操作注意要提交
                self.conn.commit()
                # 关闭光标对象
                cursor.close()
        # 关闭数据库连接
        self.conn.close()

    def start(self):
        self.insets_sql()
Esempio n. 2
0
class Prov(BaseFun):
    url = BaseFun.city_url()

    def __init__(self):
        self.res_data = requests.get(self.url)
        self.response_data = self.res_data.json()
        self.conn = BaseFun.conn_database('ncov')
        BaseFun.write_json(BASE_DIR + '/data/api_province_v2.json',
                           self.response_data)

    def read_data(self):
        res_data = BaseFun.read_json(BASE_DIR + '/data/api_province_v2.json')
        return res_data['newslist']

    def data_4_list(self):
        for res in self.read_data():
            data_list.append([
                res.get('provinceName'),
                res.get('provinceShortName'),
                res.get('confirmedCount'),
                res.get('suspectedCount'),
                res.get('curedCount'),
                res.get('deadCount'),
                res.get('comment'),
                str(res.get('cities')),
            ])

    def update_sql(self):
        for i in range(len(data_list)):
            self.sql = "update api_province_v2 set provinceName=%s, provinceShortName=%s, confirmedCount=%s, suspectedCount=%s, curedCount=%s, deadCount=%s, comment=%s, cities=%s where provinceShortName=" + '"' + \
                       data_list[i][1] + '"'
            # 获取一个光标
            self.conn.cursor()

            # 连接并执行
            self.conn.cursor().execute(self.sql, [
                data_list[i][0], data_list[i][1], data_list[i][2],
                data_list[i][3], data_list[i][4], data_list[i][5],
                data_list[i][6], data_list[i][7]
            ])
            # 涉及写操作注意要提交
            self.conn.commit()
        # 关闭光标对象
        self.conn.cursor().close()
        # 关闭数据库连接
        self.conn.close()

    def start(self):
        self.data_4_list()
        self.update_sql()
Esempio n. 3
0
class Desc(BaseFun):
    url = BaseFun.prov_url()

    def __init__(self):
        self.res_data = requests.get(self.url)
        self.response_data = self.res_data.json()
        self.conn = BaseFun.conn_database('ncov')
        BaseFun.write_json(BASE_DIR + '/data/api_desc.json',
                           self.response_data)

    def read_data(self):
        res_data = BaseFun.read_json(BASE_DIR + '/data/api_desc.json')
        return res_data['newslist'][0]['desc']

    def data_4_list(self):
        for res in self.read_data():
            data_list.append(self.read_data()[res])
        # print(data_list)

    def insets_sql(self):
        sql = "INSERT INTO api_desc (createTime,modifyTime,infectSource,passWay,imgUrl,dailyPic,countConfirmedCount,countSuspectedCount,countCuredCount,countDeadCount,virus,remark1,remark2,generalRemark,ccTime) " \
              "VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) " \
              "ON DUPLICATE KEY UPDATE ccTime=%s,modifyTime=%s,countConfirmedCount=%s,countSuspectedCount=%s,countCuredCount=%s,countDeadCount=%s"
        # 获取一个光标
        self.conn.cursor()

        # 连接并执行
        int_val = (time_change(data_list[1]), time_change(data_list[2]),
                   data_list[3], data_list[4], data_list[5], data_list[6],
                   data_list[10], data_list[11], data_list[12], data_list[13],
                   data_list[20], data_list[21], data_list[22], data_list[26],
                   formatted_date)
        upd_val = (formatted_date, time_change(data_list[2]), data_list[10],
                   data_list[11], data_list[12], data_list[13])
        val = (*int_val, *upd_val)
        self.conn.cursor().execute(sql, val)
        # 涉及写操作注意要提交
        self.conn.commit()
        # 关闭光标对象
        self.conn.cursor().close()
        # 关闭数据库连接
        self.conn.close()

    def start(self):
        self.data_4_list()
        self.insets_sql()
Esempio n. 4
0
 def read_data(self):
     res_data = BaseFun.read_json(BASE_DIR + '/data/api_desc.json')
     return res_data['newslist'][0]['news']
Esempio n. 5
0
 def __init__(self):
     self.res_data = requests.get(self.url)
     self.response_data = self.res_data.json()
     self.conn = BaseFun.conn_database('ncov')
     BaseFun.write_json(BASE_DIR + '/data/api_desc.json',
                        self.response_data)
Esempio n. 6
0
 def __init__(self):
     self.conn = BaseFun.conn_database('ncov')
     self.res_data = BaseFun.read_json(BASE_DIR + '/data/api_province_v2.json')
Esempio n. 7
0
 def read_data(self):
     res_datas = BaseFun.read_json(BASE_DIR + '/data/api_city.json')
     return res_datas
Esempio n. 8
0
 def write_data(self):
     BaseFun.write_json(BASE_DIR + '/data/api_city.json', city_list)
Esempio n. 9
0
 def read_data(self):
     res_data = BaseFun.read_json(BASE_DIR + '/data/api_province_v2.json')
     return res_data['newslist']