项目地址:
https://github.com/mrwaynelee/weather-demo
代码部分
下载生成文件功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 下载并生成文件 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, "次" ) |
创建文件夹
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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 |
生成时间列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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列表
1
2
3
4
|
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 |
主函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# 主函数 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 ( "你的选择有误!请重试" ) |
开始下载
1
2
3
|
pathname = createfolder(imgdate) # 开始下载 downloadimg(imgdate, urllist, pathname) |
完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
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 爬取天气网图片的资料请关注服务器之家其它相关文章!
原文链接:https://github.com/MrWayneLee/weather-demo