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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
Apr 25 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 Python
Django中间件拦截未登录url实例详解
Sep 03 Python
python中自带的三个装饰器的实现
Nov 08 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
python3爬取torrent种子链接实例
Jan 16 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
Python实现天气查询软件
Python字典和列表性能之间的比较
使用pycharm运行flask应用程序的详细教程
只用Python就可以制作的简单词云
python通过函数名调用函数的几种方法总结
Jun 07 #Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Python实现的扫码工具居然这么好用!
Jun 07 #Python
You might like
php Hex RGB颜色值互换的使用
2013/05/10 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
php实现微信支付之现金红包
2018/05/30 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
jstree的简单实例
2016/12/01 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
linux面试题参考答案(6)
2014/08/29 面试题
监察建议书范文
2014/03/12 职场文书
设备售后服务承诺书
2014/05/30 职场文书
医院义诊活动总结
2014/07/04 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android