text 를 가져옴 temperature = tds[5].text # 기온 humidity = tds[9].text # 습도 data.append([point, temperature, humidity]) # data에 [지역, 기온, 습도] 추가 data"> text 를 가져옴 temperature = tds[5].text # 기온 humidity = tds[9].text # 습도 data.append([point, temperature, humidity]) # data에 [지역, 기온, 습도] 추가 data"> text 를 가져옴 temperature = tds[5].text # 기온 humidity = tds[9].text # 습도 data.append([point, temperature, humidity]) # data에 [지역, 기온, 습도] 추가 data">
import requests
from bs4 import BeautifulSoup
# 웹페이지 가져오기
response = requests.get("<https://www.weather.go.kr/weather/observation/currentweather.jsp>")
# BeautifulSoup 객체로 만들기
soup = BeautifulSoup(response.content, 'html.parser')
# <table class = "table_develop3" 찾기
table = soup.find('table', {'table_develop3'})
# 데이터 리스트 작성
data = [] # 데이터 넣을 리스트 생성
for tr in table.find_all('tr'): # 모든 tr(가로줄) 찾기
tds = list(tr.find_all('td')) # 모든 td(세로줄) 리스트 만들기
for td in tds : # 모든 td(세로줄) 찾기
if td.find('a') : # td에서 a 태그를 찾으면
point = td.find('a').text # a테그 <a>text</a> 를 가져옴
temperature = tds[5].text # 기온
humidity = tds[9].text # 습도
data.append([point, temperature, humidity]) # data에 [지역, 기온, 습도] 추가
data
with open("weather.csv", "w") as file : # 파일 쓰기
file.write("point,temperature,humidity\\n") # 맨 윗줄 이름 추가(빈칸 없게)
for i in data :
file.write("{},{},{}\\n".format(i[0], i[1], i[2])) # 두번째 줄부터 지역,기온,습도 작성
# 그래프 그리기
%matplotlib inline # import 하지 않고 그래프 표기 가능
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
# csv파일로 데이터프레임 객체 만듦
df = pd.read_csv("weather.csv", index_col = "point", encoding = "euc-kr")
df
city_df = df.loc[["서울", "인천", "대전", "대구", "광주", "부산", "울산"]]
city_df
# 한글깨짐 방지 폰트 설정
mpl.rc("font", family = "NanumGothic")
# 차트
ax = city_df.plot(kind = 'bar', title = "날씨", figsize = (12, 4), legend = True, fontsize = 12)
ax.set_xlabel('도시', fontsize = 12)
ax.set_ylabel('기온/습도', fontsize = 12)
ax.legend(['기온', '습도'], fontsize = 12)