06_中央气象台
2017-05-02 本文已影响38人
过桥
简述
近期加班有点多,再加上新写的爬虫练习基本没有新内容,故停更一阵。言归正传,之前进行卫星云图数据抓取时,仅进行图片抓取,未将文件名称等内容入库存储,现进行完善。
存档对象
通过爬虫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 更新
方式二、文件遍历