python 爬取天气网卫星图片


Posted in Python onJune 07, 2021

项目地址:

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 requests
import time
import datetime
import 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 爬取天气网卫星图片的详细内容,更多关于python 爬取天气网图片的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python进行数据科学工作的简单入门教程
Apr 01 Python
Python实例一个类背后发生了什么
Feb 09 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python 爬虫网页登陆的简单实现
Nov 30 Python
一行代码python实现文件共享服务器
Apr 22 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 Python
Python实现天气查询软件
Python字典和列表性能之间的比较
使用pycharm运行flask应用程序的详细教程
只用Python就可以制作的简单词云
python通过函数名调用函数的几种方法总结
Jun 07 #Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Python实现的扫码工具居然这么好用!
Jun 07 #Python
You might like
用php解析html的实现代码
2011/08/08 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
保护环境建议书300字
2014/05/13 职场文书
主持人演讲稿
2014/05/13 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
三严三实学习心得体会
2014/10/13 职场文书
工作保证书怎么写
2015/02/28 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
社区安全温馨提示语
2015/07/14 职场文书
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers