Seungmi

수정

...@@ -6,27 +6,60 @@ from pprint import pprint ...@@ -6,27 +6,60 @@ from pprint import pprint
6 html = requests.get('https://search.naver.com/search.naver?query=날씨') 6 html = requests.get('https://search.naver.com/search.naver?query=날씨')
7 soup = BeautifulSoup(html.text, 'html.parser') 7 soup = BeautifulSoup(html.text, 'html.parser')
8 8
9 -data1 = soup.find('div', {'class': 'weather_box'}) 9 +weather_data = soup.find('div', {'class': 'weather_box'})
10 -
11 -# 위치
12 -address = data1.find('span', {'class': 'btn_select'}).text
13 -
14 10
15 # 날씨 11 # 날씨
16 -find_weather= data1.find('p', {'class': 'cast_txt'}).text 12 +currentweather= weather_data.find('p', {'class': 'cast_txt'}).text
17 -
18 weather_endIndex = 0 13 weather_endIndex = 0
19 14
20 -for i in range(0,len(find_weather)): 15 +for i in range(0,len(currentweather)):
21 - if find_weather[i] == ',': 16 + if currentweather[i] == ',':
22 weather_endIndex = i 17 weather_endIndex = i
23 break 18 break
24 19
25 -weather = find_weather[0:weather_endIndex] 20 +weather = currentweather[0:weather_endIndex]
26 21
27 # 온도 22 # 온도
28 -find_currenttemp = data1.find('span', {'class':'todaytemp'}).text 23 +currenttemp_data = weather_data.find('span', {'class':'todaytemp'}).text
29 -currentTemp = int(find_currenttemp) 24 +currentTemp = int(currenttemp_data)
25 +
26 +# 미세먼지
27 +dust_data = weather_data.findAll('dd')
28 +
29 +# 미세먼지, 초미세먼지, 오존지수 상태
30 +dust_txt = dust_data[0].find('span', {'class':'num'}).text
31 +dust = int(dust_txt[0:-3])
32 +
33 +if dust > 150:
34 + dust_status = "매우나쁨"
35 +elif dust > 80:
36 + dust_status = "나쁨"
37 +elif dust > 30:
38 + dust_status = "보통"
39 +else:
40 + dust_status = "좋음"
41 +
42 +microdust_txt = dust_data[1].find('span', {'class':'num'}).text
43 +microdust = int(microdust_txt[0:-3])
44 +if microdust > 75:
45 + microdust_status = "매우나쁨"
46 +elif microdust > 35:
47 + microdust_status = "나쁨"
48 +elif microdust > 15:
49 + microdust_status = "보통"
50 +else:
51 + microdust_status = "좋음"
52 +
53 +ozone_txt = dust_data[2].find('span', {'class':'num'}).text
54 +ozone = float(ozone_txt[0:-3])
55 +if ozone > 0.151:
56 + ozone_status = "매우나쁨"
57 +elif ozone > 0.15:
58 + ozone_status = "나쁨"
59 +elif ozone > 0.03:
60 + ozone_status = "보통"
61 +else:
62 + ozone_status = "좋음"
30 63
31 # 추천 옷차림새 64 # 추천 옷차림새
32 if currentTemp >= 27: 65 if currentTemp >= 27:
...@@ -56,5 +89,9 @@ elif '눈' in weather: ...@@ -56,5 +89,9 @@ elif '눈' in weather:
56 else: 89 else:
57 notice = "특이사항이 없습니다." 90 notice = "특이사항이 없습니다."
58 91
59 -full = "현재 위치: "+address+'\n오늘의 온도: '+str(currentTemp)+'도'+'\n오늘의 날씨: '+weather+'\n추천 옷차림새: '+recDress+'\n특이사항: '+notice 92 +
60 -print(full) 93 +print('오늘의 온도: '+str(currentTemp)+'도'+
94 +'\n오늘의 날씨: '+weather+'\n미세먼지: '+str(dust)+' '+dust_status+'\n초미세먼지: '+str(microdust)+' '+microdust_status+
95 +'\n오존농도: '+str(ozone)+' '+ozone_status+'\n추천 옷차림새: '+recDress+'\n특이사항: '+notice)
96 +
97 +
......