변경된 Yahoo 날씨 파싱하기

야후 날씨 API를 통해서 날씨를 보여주는 위젯, 가젯, desklet등이 많이 있습니다. 저 역시 맥에서는 geektool로, 업무용 데탑에서는 conky로 날씨를 보여주고 있었죠. 이런 툴들의 특성상 한번 설치 해놓고나면 특별히 업데이트 할 일도 없고, 가끔 안되면 ‘좀 이따 되겠지 뭐’ 라는 식으로 며칠 기다리다보면 될때가 많습니다. 하지만 왠걸, 날씨 정보가 계속 안보이는겁니다. conky와 geektool 둘다 날씨가 안되는걸 보고 야후 날씨 정보를 가져오는데서 뭔가 문제가 생긴걸 알았죠..

야후 날씨를 받아오는 방법에는 두가지가 있었습니다. 둘다 GET으로 가져오지만

1. “http://weather.yahooapis.com/forecastrss”에서 가져오는 방법

2. “https://query.yahooapis.com/v1/public/yql”에서 가져오는 방법(YQL)

이중 1번 방법이 더이상 안되기 때문에 과거 위젯들은 스크립트를 수정하지 않으면 위젯정보가 출력되지 않는 겁니다. 그래도 어차피 YQL로 원하는 정보를 가져와서 무식하게(?) 파싱하는건 동일한 과정이므로 크게 어렵지 않게 고칠 수 있습니다.

curl로 받아오는 주소는 https://developer.yahoo.com/weather/ 에 접속한 후 YQL에 원하는 정보를 입력하고나면 endpoint에 만들어지는 주소를 가져오면 됩니다.

섭씨온도 출력으로 고정하기 위해

를 추가해 주었습니다. 화씨출력을 하려면 c만 f로 바꿔주면 되겠죠?

Yahoo날씨는 숫자로 날씨 상태를 알려줍니다. geektool도 그렇지만 대부분의 가젯에서 이 숫자에 mapping하여 1.png, 2.png이런식으로 날씨 아이콘을 보여주게 되어 있기 때문에 그 부분도 그대로 가져왔습니다.

Forecast도 11줄씩 고정된 라인으로 일자별로 출력되기에 여기도 무식하게 건너뛰어가며 반복하여 가져옵니다.

참 쉽죠~?

transpine

생각이 세상을 바꿀 수 있다고 믿습니다. 생각하는 힘을 기릅시다.

You may also like...

%d 블로거가 이것을 좋아합니다: