您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python 爬取天气网卫星图片

51自学网 2021-10-30 22:29:47
  python
这篇教程python 爬取天气网卫星图片写得很实用,希望能帮到您。

项目地址:

https://github.com/MrWayneLee/weather-demo

代码部分

下载生成文件功能

# 下载并生成文件def downloadImg(imgDate, imgURLs, pathName):    a,s,f = 0,0,0    timeStart = time.time()    while a < len(imgURLs):        req = requests.get(imgURLs[a])        imgName = str(imgURLs[a])[-13:-9]        print(str("开始请求" + imgDate + " " + imgName + "的数据"))        if req.status_code == 200:            open(pathName + '//' + os.path.basename(imgName) + '.png', 'wb').write(req.content)            print("数据" + imgDate + " " + imgName + "下载完成")            s += 1            del req        elif req.status_code == 404:            print("数据" + imgDate + " " + imgName + "不存在")            f += 1        a += 1    timeEnd = time.time()    totalTime = round(timeEnd - timeStart, 2)    print("全部数据请求完成!总耗时:",totalTime,"秒")    print("共请求", a, "次;成功", s, "次;失败", f, "次")

创建文件夹

def createFolder(pathName):    imgName_Year = pathName[0:4]    imgName_Month = pathName[4:6]    imgName_Day = pathName[6:8]    imgName_date = imgName_Year + '-' + imgName_Month + '-' + imgName_Day    mainPath = 'F://[Wayne Lee]//学习资料//Python//爬取图像'    newPathName = mainPath + '//' + imgName_date    realPath = newPathName + '//'    isExists = os.path.exists(newPathName)    if not isExists:        os.makedirs(newPathName)        print("新文件夹 [" + imgName_date + "] 创建成功")        return realPath    else:        print(pathName + "文件夹已存在")        return realPath

生成时间列表

def generateTime(imgUrl):    timeList = []    imgUrlList = []    h,j = 0,0    while h < 24:        m = 0        while m < 60:            timeList.append("{:0>4d}".format(h * 100 + m))            m += 15        h += 1    # print(timeList)    # print(len(timeList))    while j < len(timeList):        imgUrlList.append(str(imgUrl + timeList[j] + "00000.JPG"))        # print(timeList[j])        j += 1    return imgUrlList    # print(imgUrlList)    # print(len(imgUrlList))

生成下载URL列表

def downloadUrl(imgDate):    imgUrl = "http://image.nmc.cn/product/" + imgDate[0:4] + "/" + imgDate[4:6] + "/" + imgDate[6:8] + "/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_" + imgDate # + "0000" +"00000.JPG"    URLlist = list(generateTime(imgUrl))    return URLlist

主函数

# 主函数if __name__ == '__main__':    # imgUrl = "http://image.nmc.cn/product/2020/04/11/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_20200411044500000.JPG"    # imgUrl = "http://image.nmc.cn/product/2020/04/11/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_20200411"    # imgName = imgUrl[-21:-9]    while True:        print("[1]手动输入日期")        print("[2]获取当天日期")        print("[3]退出程序")        choose = str(input("你的选择:"))        if choose == "1":            imgDate = str(input("请输入日期[如20200411]:"))            urlList = list(downloadUrl(imgDate))            break        elif choose == "2":            imgDate = time.strftime("%Y%m%d",time.localtime())            urlList = list(downloadUrl(imgDate))            break        elif choose == "3":            break        else:            print("你的选择有误!请重试")

开始下载

    pathName = createFolder(imgDate)    # 开始下载    downloadImg(imgDate, urlList, pathName)

完整代码

import requestsimport timeimport datetimeimport os# 下载并生成文件def downloadImg(imgDate, imgURLs, pathName):    a,s,f = 0,0,0    timeStart = time.time()    while a < len(imgURLs):        req = requests.get(imgURLs[a])        imgName = str(imgURLs[a])[-13:-9]        print(str("开始请求" + imgDate + " " + imgName + "的数据"))        if req.status_code == 200:            open(pathName + '//' + os.path.basename(imgName) + '.png', 'wb').write(req.content)            print("数据" + imgDate + " " + imgName + "下载完成")            s += 1            del req        elif req.status_code == 404:            print("数据" + imgDate + " " + imgName + "不存在")            f += 1        a += 1    timeEnd = time.time()    totalTime = round(timeEnd - timeStart, 2)    print("全部数据请求完成!总耗时:",totalTime,"秒")    print("共请求", a, "次;成功", s, "次;失败", f, "次")# 创建文件夹def createFolder(pathName):    imgName_Year = pathName[0:4]    imgName_Month = pathName[4:6]    imgName_Day = pathName[6:8]    imgName_date = imgName_Year + '-' + imgName_Month + '-' + imgName_Day    mainPath = 'F://[Wayne Lee]//学习资料//Python//爬取图像'    newPathName = mainPath + '//' + imgName_date    realPath = newPathName + '//'    isExists = os.path.exists(newPathName)    if not isExists:        os.makedirs(newPathName)        print("新文件夹 [" + imgName_date + "] 创建成功")        return realPath    else:        print(pathName + "文件夹已存在")        return realPath# 生成时间列表def generateTime(imgUrl):    timeList = []    imgUrlList = []    h,j = 0,0    while h < 24:        m = 0        while m < 60:            timeList.append("{:0>4d}".format(h * 100 + m))            m += 15        h += 1    # print(timeList)    # print(len(timeList))    while j < len(timeList):        imgUrlList.append(str(imgUrl + timeList[j] + "00000.JPG"))        # print(timeList[j])        j += 1    return imgUrlList    # print(imgUrlList)    # print(len(imgUrlList))# 生成下载URL列表def downloadUrl(imgDate):    imgUrl = "http://image.nmc.cn/product/" + imgDate[0:4] + "/" + imgDate[4:6] + "/" + imgDate[6:8] + "/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_" + imgDate # + "0000" +"00000.JPG"    URLlist = list(generateTime(imgUrl))    return URLlist# 主函数if __name__ == '__main__':    # imgUrl = "http://image.nmc.cn/product/2020/04/11/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_20200411044500000.JPG"    # imgUrl = "http://image.nmc.cn/product/2020/04/11/WXBL/SEVP_NSMC_WXBL_FY4A_ETCC_ACHN_LNO_PY_20200411"    # imgName = imgUrl[-21:-9]    while True:        print("[1]手动输入日期")        print("[2]获取当天日期")        print("[3]退出程序")        choose = str(input("你的选择:"))        if choose == "1":            imgDate = str(input("请输入日期[如20200411]:"))            urlList = list(downloadUrl(imgDate))            break        elif choose == "2":            imgDate = time.strftime("%Y%m%d",time.localtime())            urlList = list(downloadUrl(imgDate))            break        elif choose == "3":            break        else:            print("你的选择有误!请重试")    # 创建文件夹    pathName = createFolder(imgDate)    # 开始下载    downloadImg(imgDate, urlList, pathName)

爬取效果

以上就是python 爬取天气网卫星图片的详细内容,更多关于python 爬取天气网图片的资料请关注51zixue.net其它相关文章!


Python实现天气查询软件
在Python中如何使用yield
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。