1# 导入模块
2import json
3import urllib.request
4import xlwt
5import datetime
6
7# 设置浏览器参数
8headers = {'Connection': 'Keep-Alive',
9 'Accept': 'text/html, application/xhtml+xml, */*',
10 'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
11 'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}
12
13for year in range(2019, 2020):
14 for num in range(1,30):
15 try:
16 number = str(year) + str(num).zfill(2)
17 chaper_url = 'http://data.istrongcloud.com/v2/data/complex/' + number + '.json'
18 req = urllib.request.Request(url=chaper_url, headers=headers)
19 data = urllib.request.urlopen(req).read()
20 data = json.loads(data)[0]
21
22 f = xlwt.Workbook(encoding = 'utf-8')
23 sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok = True)
24 sheet1.write(0,0,'台风编号')
25 sheet1.write(0,1,'中文名称')
26 sheet1.write(0,2,'英文名称')
27 sheet1.write(0,3,'时刻')
28 sheet1.write(0,4,'经度')
29 sheet1.write(0,5,'纬度')
30 sheet1.write(0,6,'强度等级')
31 sheet1.write(0,7,'气压')
32 sheet1.write(0,8,'风速')
33 sheet1.write(0,9,'风级')
34 sheet1.write(0,10,'移速')
35 sheet1.write(0,11,'移向')
36
37 sheet1.write(0,12,'radius7')
38 sheet1.write(0,13,'radius10')
39 sheet1.write(0,14,'radius12')
40 sheet1.write(0,15,'ne_7')
41 sheet1.write(0,16,'se_7')
42 sheet1.write(0,17,'sw_7')
43 sheet1.write(0,18,'nw_7')
44 sheet1.write(0,19,'ne_10')
45 sheet1.write(0,20,'se_10')
46 sheet1.write(0,21,'sw_10')
47 sheet1.write(0,22,'nw_10')
48 sheet1.write(0,23,'ne_12')
49 sheet1.write(0,24,'se_12')
50 sheet1.write(0,25,'sw_12')
51 sheet1.write(0,26,'nw_12')
52
53 for i in range(0,len(data['points'])):
54 sheet1.write(i+1,0,data['tfbh'])
55 sheet1.write(i+1,1,data['name'])
56 sheet1.write(i+1,2,data['ename'])
57 sheet1.write(i+1,3,str(datetime.datetime.strptime(data['points'][i]['time'],'%Y-%m-%dT%H:%M:%S')))
58 sheet1.write(i+1,4,data['points'][i]['lat'])
59 sheet1.write(i+1,5,data['points'][i]['lng'])
60 sheet1.write(i+1,6,data['points'][i]['strong'])
61 sheet1.write(i+1,7,data['points'][i]['pressure'])
62 sheet1.write(i+1,8,data['points'][i]['speed'])
63 sheet1.write(i+1,9,data['points'][i]['power'])
64 sheet1.write(i+1,10,data['points'][i]['move_speed'])
65 sheet1.write(i+1,11,data['points'][i]['move_dir'])
66
67 sheet1.write(i+1,12,data['points'][i]['radius7'])
68 sheet1.write(i+1,13,data['points'][i]['radius10'])
69 sheet1.write(i+1,14,data['points'][i]['radius12'])
70 if data['points'][i]['radius7_quad'] != 'null':
71 sheet1.write(i+1,15,data['points'][i]['radius7_quad']['ne'])
72 sheet1.write(i+1,16,data['points'][i]['radius7_quad']['se'])
73 sheet1.write(i+1,17,data['points'][i]['radius7_quad']['sw'])
74 sheet1.write(i+1,18,data['points'][i]['radius7_quad']['nw'])
75 else:
76 sheet1.write(i+1,15,'NaN')
77 sheet1.write(i+1,16,'NaN')
78 sheet1.write(i+1,17,'NaN')
79 sheet1.write(i+1,18,'NaN')
80 if data['points'][i]['radius10_quad'] != 'null':
81 sheet1.write(i+1,19,data['points'][i]['radius10_quad']['ne'])
82 sheet1.write(i+1,20,data['points'][i]['radius10_quad']['se'])
83 sheet1.write(i+1,21,data['points'][i]['radius10_quad']['sw'])
84 sheet1.write(i+1,22,data['points'][i]['radius10_quad']['nw'])
85 else:
86 sheet1.write(i+1,19,'NaN')
87 sheet1.write(i+1,20,'NaN')
88 sheet1.write(i+1,21,'NaN')
89 sheet1.write(i+1,22,'NaN')
90 if data['points'][i]['radius12_quad'] != 'null':
91 sheet1.write(i+1,23,data['points'][i]['radius12_quad']['ne'])
92 sheet1.write(i+1,24,data['points'][i]['radius12_quad']['se'])
93 sheet1.write(i+1,25,data['points'][i]['radius12_quad']['sw'])
94 sheet1.write(i+1,26,data['points'][i]['radius12_quad']['nw'])
95 else:
96 sheet1.write(i+1,23,'NaN')
97 sheet1.write(i+1,24,'NaN')
98 sheet1.write(i+1,25,'NaN')
99 sheet1.write(i+1,26,'NaN')
100
101 f.save('typhoon/' + number + '.xls')
102 print(number+ '.xls 已下载' )
103 except:
104 break