python 爬取天氣網(wǎng)衛(wèi)星圖片
更新時間:2021年06月07日 15:02:13 作者:MrWayneLee
根據(jù)網(wǎng)站URL的規(guī)律編寫的一個爬取天氣網(wǎng)衛(wèi)星圖片的python爬蟲,使用了requests包,感興趣的朋友可以參考下
項目地址:
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 + "的數(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ù)請求完成!總耗時:",totalTime,"秒")
print("共請求", 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
生成時間列表
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]手動輸入日期")
print("[2]獲取當(dāng)天日期")
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 + "的數(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ù)請求完成!總耗時:",totalTime,"秒")
print("共請求", 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
# 生成時間列表
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]手動輸入日期")
print("[2]獲取當(dāng)天日期")
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("你的選擇有誤!請重試")
# 創(chuàng)建文件夾
pathName = createFolder(imgDate)
# 開始下載
downloadImg(imgDate, urlList, pathName)
爬取效果

以上就是python 爬取天氣網(wǎng)衛(wèi)星圖片的詳細(xì)內(nèi)容,更多關(guān)于python 爬取天氣網(wǎng)圖片的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python數(shù)據(jù)處理——對pandas進(jìn)行數(shù)據(jù)變頻或插值實例
這篇文章主要介紹了python數(shù)據(jù)處理——對pandas進(jìn)行數(shù)據(jù)變頻或插值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
教你利用Selenium+python自動化來解決pip使用異常
今天帶大家來學(xué)習(xí)怎么利用Selenium+python自動化解決pip使用異常,文中介紹的非常詳細(xì),對正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-05-05
Pytorch中torch.repeat_interleave()函數(shù)使用及說明
這篇文章主要介紹了Pytorch中torch.repeat_interleave()函數(shù)使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
python自動化測試selenium核心技術(shù)三種等待方式詳解
這篇文章主要為大家介紹了python自動化測試selenium的核心技術(shù)三種等待方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11

