python 爬取天氣網(wǎng)衛(wèi)星圖片
項(xiàng)目地址:
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("開(kāi)始請(qǐng)求" + imgDate + " " + imgName + "的數(shù)據(jù)")) if req.status_code == 200: open(pathName + '\\' + os.path.basename(imgName) + '.png', 'wb').write(req.content) print("數(shù)據(jù)" + imgDate + " " + imgName + "下載完成") s += 1 del req elif req.status_code == 404: print("數(shù)據(jù)" + imgDate + " " + imgName + "不存在") f += 1 a += 1 timeEnd = time.time() totalTime = round(timeEnd - timeStart, 2) print("全部數(shù)據(jù)請(qǐng)求完成!總耗時(shí):",totalTime,"秒") print("共請(qǐng)求", a, "次;成功", s, "次;失敗", f, "次")
創(chuàng)建文件夾
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]\\學(xué)習(xí)資料\\Python\\爬取圖像' newPathName = mainPath + '\\' + imgName_date realPath = newPathName + '\\' isExists = os.path.exists(newPathName) if not isExists: os.makedirs(newPathName) print("新文件夾 [" + imgName_date + "] 創(chuàng)建成功") return realPath else: print(pathName + "文件夾已存在") return realPath
生成時(shí)間列表
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
主函數(shù)
# 主函數(shù) 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]手動(dòng)輸入日期") print("[2]獲取當(dāng)天日期") print("[3]退出程序") choose = str(input("你的選擇:")) if choose == "1": imgDate = str(input("請(qǐng)輸入日期[如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("你的選擇有誤!請(qǐng)重試")
開(kāi)始下載
pathName = createFolder(imgDate) # 開(kāi)始下載 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("開(kāi)始請(qǐng)求" + imgDate + " " + imgName + "的數(shù)據(jù)")) if req.status_code == 200: open(pathName + '\\' + os.path.basename(imgName) + '.png', 'wb').write(req.content) print("數(shù)據(jù)" + imgDate + " " + imgName + "下載完成") s += 1 del req elif req.status_code == 404: print("數(shù)據(jù)" + imgDate + " " + imgName + "不存在") f += 1 a += 1 timeEnd = time.time() totalTime = round(timeEnd - timeStart, 2) print("全部數(shù)據(jù)請(qǐng)求完成!總耗時(shí):",totalTime,"秒") print("共請(qǐng)求", a, "次;成功", s, "次;失敗", f, "次") # 創(chuàng)建文件夾 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]\\學(xué)習(xí)資料\\Python\\爬取圖像' newPathName = mainPath + '\\' + imgName_date realPath = newPathName + '\\' isExists = os.path.exists(newPathName) if not isExists: os.makedirs(newPathName) print("新文件夾 [" + imgName_date + "] 創(chuàng)建成功") return realPath else: print(pathName + "文件夾已存在") return realPath # 生成時(shí)間列表 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 # 主函數(shù) 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]手動(dòng)輸入日期") print("[2]獲取當(dāng)天日期") print("[3]退出程序") choose = str(input("你的選擇:")) if choose == "1": imgDate = str(input("請(qǐng)輸入日期[如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("你的選擇有誤!請(qǐng)重試") # 創(chuàng)建文件夾 pathName = createFolder(imgDate) # 開(kāi)始下載 downloadImg(imgDate, urlList, pathName)
爬取效果
以上就是python 爬取天氣網(wǎng)衛(wèi)星圖片的詳細(xì)內(nèi)容,更多關(guān)于python 爬取天氣網(wǎng)圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python 爬蟲(chóng)批量爬取網(wǎng)頁(yè)圖片保存到本地的實(shí)現(xiàn)代碼
- Python爬蟲(chóng)實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片
- 只用50行Python代碼爬取網(wǎng)絡(luò)美女高清圖片
- python 爬取英雄聯(lián)盟皮膚圖片
- Python如何利用正則表達(dá)式爬取網(wǎng)頁(yè)信息及圖片
- Python爬取動(dòng)態(tài)網(wǎng)頁(yè)中圖片的完整實(shí)例
- Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例
- Python 爬取網(wǎng)頁(yè)圖片詳解流程
相關(guān)文章
時(shí)間序列分析之ARIMA模型預(yù)測(cè)餐廳銷量
這篇文章主要介紹了時(shí)間序列分析之ARIMA模型預(yù)測(cè)餐廳銷量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例
這篇文章主要介紹了python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04教你利用Selenium+python自動(dòng)化來(lái)解決pip使用異常
今天帶大家來(lái)學(xué)習(xí)怎么利用Selenium+python自動(dòng)化解決pip使用異常,文中介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-05-05Pytorch中torch.repeat_interleave()函數(shù)使用及說(shuō)明
這篇文章主要介紹了Pytorch中torch.repeat_interleave()函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解
這篇文章主要為大家介紹了python自動(dòng)化測(cè)試selenium的核心技術(shù)三種等待方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11