" urllib.parse.urlencode() "
( urllib 라이브러리, parse 모듈, urlencode() 함수 )
파이썬에서 URL에 매개변수를 추가해 요청을 전송하는 방법입니다.
기상청 RSS를 이용해, URL에 지역번호를 지정하고, 해당지역의 정보를 불러보겠습니다.
▼ 기상청 RSS ▼
http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp
매개변수 | stnId |
지역번호 | |||
전국 | 108 | 전라북도 | 146 |
서울/경기 | 109 | 전라남도 | 156 |
강원도 | 105 | 경상북도 | 143 |
충청북도 | 131 | 경상남도 | 159 |
충청남도 | 133 | 제주도 | 184 |
▼ 코드 ▼
import urllib.request
import urllib.parse
API = "http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp"
# 매개변수를 URL에 인코딩합니다.
values = {'stnId': '108'}
params = urllib.parse.urlencode(values)
# 요청 전용 URL을 생성합니다.
url = API + "?" + params
print("url=", url)
# 다운 로드 합니다.
data = urllib.request.urlopen(url).read()
text = data.decode("utf-8")
print(text)
" import urllib.parse "
parse 모듈을 불러옵니다.
" values = {'stnId': '108'} "
매개변수를 정해서, 딕셔너리 {} 형식으로 만들어줍니다.
( 108로 설정했으므로, 전국 기상정보를 가져옵니다 )
" params = urllib.parse.urlencode(values) "
아까 만든 매개변수를 인코딩하여 컴퓨터가 이해할 수 있게 만들어줍니다.
( 인코딩 : 문자를 컴퓨터가 이해할 수 있는 언어로 바꾸어주는 작업 )
" url = API + "?" + params "
최종 URL을 만들어줍니다.
( 매개변수를 url에 전달할땐, "주소?params" 형식으로 전달해야 합니다. )
" print("url=", url) "
URL이 제대로 만들어졌는지 화면에 출력하여 확인합니다.
" data = urllib.request.urlopen(url).read() "
urlopen을 사용해, URL에서 데이터를 수집하고, 바이너리 형식으로 저장합니다.
" text = data.decode("utf-8") "
바이너리 형식의 데이터를 텍스트 형식으로 바꿔줍니다.
" print(text) "
가공된 정보를 화면에 출력합니다.
전국날씨를 가져올 수 있습니다
매개변수를 바꿔가며, 다른 지역만 가져올 수도 있습니다!