curl, iconv, hxselect, head, sed 를 이용하여 기상 예보를 받아 오는 방법입니다.
먼저 필요한 Utility 를 설치 해야 합니다.
sudo apt-get install html-xml-utils curl
전국 오늘 날씨 예보 조회 하기
curl -s "http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=108&x=14&y=11" | iconv -f euc-kr -t utf-8 | hxselect 'table.table_announcementtime' | hxselect 'td' | hxselect -s '\n\n' -c 'p' | head -n 1 | sed 's/<br\/>/\n/g' |
위 명령을 Shell 상에서 그대로 실행 하면 다음과 같은 결과가 출력 됩니다.
중국 북동지방에 위치한 고기압의 영향을 받겠습니다. 전국이 대체로 맑겠으나, 동해안은 오후부터 구름많겠습니다. * 낮동안 연무나 박무(옅은 안개)가 끼는 곳이 있겠으니, 교통안전과 건강관리에 유의하시기 바랍니다. 낮 최고기온은 21도에서 27도로 어제와 비슷하겠습니다. * 당분간 내륙을 중심으로 낮과 밤의 기온차가 10도 이상 크겠으니, 건강관리에 유의하시기 바랍니다. 바다의 물결은 전해상에서 0.5~2.5m로 일겠습니다. * 서해상에는 안개가 끼는 곳이 있겠으니, 항해나 조업하는 선박은 유의하시기 바랍니다. |
각 지역별 예보 url 은 다음과 같습니다.
# 날씨 요약
# 전국 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=108&x=14&y=11
# 서울,인천,경기도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=109&x=23&y=5
# 부산,울산,경상남도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=159&x=32&y=14
# 대구,경상북도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=143&x=15&y=16
# 광주,전라남도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=156&x=19&y=18
# 전라북도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=146&x=30&y=2
# 대전,세종,충청남도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=133&x=31&y=16
# 충청북도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=131&x=36&y=9
# 강원도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=105&x=28&y=16
# 제주도 http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=184&x=27&y=10
위 명령에서 url 만 원하시는걸로 변경 해서 사용하시면 됩니다.
만약 내일 날씨 예보를 가져오고 싶다면 다음과 같이 head 와 tail 을 이용하면 됩니다.
내일 날씨 예보
curl -s "http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=108&x=14&y=11" | iconv -f euc-kr -t utf-8 | hxselect 'table.table_announcementtime' | hxselect 'td' | hxselect -s '\n\n' -c 'p' | head -n 3 | tail -n 1 | sed 's/<br\/>/\n/g' |
모레 날씨 예보
curl -s "http://www.kma.go.kr/weather/forecast/summary.jsp?stnId=108&x=14&y=11" | iconv -f euc-kr -t utf-8 | hxselect 'table.table_announcementtime' | hxselect 'td' | hxselect -s '\n\n' -c 'p' | head -n 5 | tail -n 1 | sed 's/<br\/>/\n/g' |
기상 예보 요약본은 RSS로 제공해 주는 곳을 못찾아서 HTML 페이지를 직접 Parsing 해서 가져오는 중입니다.
혹시 xml 또는 json 형태로 제공해 주는곳을 아시는 분은 제보 좀 부탁드려요.
그리고 HTML 파서 괜찮은 CLI Utility 가 있다면 추천 좀 부탁드려요~!
'강좌 > RaspberryPI 활용' 카테고리의 다른 글
Raspberry pi - Python 3.5 설치 하기 (12) | 2016.10.11 |
---|---|
Telegram CLI 시작 프로그램 등록하기 (18) | 2016.07.25 |
라즈베리파이 FrameBuffer 스트리밍 (0) | 2016.01.13 |
Raspberry Pi Zero 출시 (0) | 2015.11.26 |
라즈베리파이 공식 7인치 LCD (DSI) 멀티 터치 사용하기 (5) | 2015.09.23 |
Raspberry Pi DSI Display Multi Touch (0) | 2015.09.22 |
유튜브 다운로드 (0) | 2015.09.01 |
라즈베리파이 Telegram - PHP를 이용하여 메시지 보내기 (7) | 2015.08.13 |