06_中央气象台

简述

近期加班有点多,再加上新写的爬虫练习基本没有新内容,故停更一阵。言归正传,之前进行卫星云图数据抓取时,仅进行图片抓取,未将文件名称等内容入库存储,现进行完善。

存档对象

通过爬虫Python练习系列_02抓取至本地的卫星云图数据。

样例数据

实现方式一

直接完善Python练习系列_02中相关代码,在循环后增加入库代码

        fileTime = time.strptime(image_name,"%Y%m%d %H_%M")
        fileTime = time.strftime('%Y-%m-%d %H:%M:%S',fileTime)
        sql="select count(id) from Space0014A where column_0='%s' and column_1='%s' and column_2='%s' " %(folder,fileTime,image_name)
        isRepeat = ms.ExecQuery(sql.encode('utf-8'))
        if isRepeat[0][0] == 0:
            sql = "insert into Space0014A values ('%s','%s','%s') " %(folder,fileTime,image_name)
            ms.ExecNonQuery(sql.encode('utf-8'))

实现方式二

编写监控程序,定时循环本地文件夹,查看所有图片文件,检查更新入库

    for rt,dirs,files in os.walk(root):
        for f in files:
            #使用find,如果没有找到子串,返回 -1
            #print(f.find('.jpg'))
            #使用index,如果没有找到子串,会直接抛出异常,substring not found
            #print(f.index('.jpg'))
            if f.find(".jpg") != -1:
                #print(os.path.join(rt,f)) #完整文件名
                #print(rt.split('\\')[-1]) #文件夹名
                folder = rt.split('\\')[-1]
                #print(f) #文件名
                image_name = f
                fileTime = image_name.replace(".jpg","")  # 20170502 13_00
                fileTime = time.strptime(fileTime,"%Y%m%d %H_%M") #time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=13, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=122, tm_isdst=-1)
                fileTime = time.strftime('%Y-%m-%d %H:%M:%S',fileTime)
                #print(time.ctime(os.path.getmtime(os.path.join(rt,f)))) #修改时间
                #print(time.ctime(os.path.getctime(os.path.join(rt,f)))) #创建时间

                sql="select count(id) from Space0014A where column_0='%s' and column_1='%s' and column_2='%s' " %(folder,fileTime,image_name)
                isRepeat = ms.ExecQuery(sql.encode('utf-8'))
                if isRepeat[0][0] == 0:
                    sql = "insert into Space0014A values ('%s','%s','%s') " %(folder,fileTime,image_name)
                    ms.ExecNonQuery(sql.encode('utf-8'))

总结

本轮示例主要为完善之前代码,涉及非标准时间格式转为特定时间格式、遍历文件获取相关文件信息等内容......
方式一、Python练习系列_02 更新
方式二、文件遍历

你可能感兴趣的:(06_中央气象台)