시각화/파이썬

▶Python을 이용한 데이터시각화 :: 데이터 수집하기 #1

비주얼라이즈 2014. 2. 13. 17:49


데이터시각화 첫 포스팅으로 'Python으로 데이터 수집하기'를 써보고자 합니다.


먼저 Python을 지식백과에서 찾아보면, '자바와 비슷한 객체지향형 프로그래밍 해석형 언어'라고 정의하고 있습니다.[이런 어려운말은 PASS하고]

예제를 바탕으로 이야기를 해보려고합니다. 참고로 여기서 소개하는 예제는 '비주얼라이즈디스'의 예제입니다.



오늘 접근해볼 데이터는 '날씨정보'입니다. '최근 3년간 서울의 최고온도를 알고싶다'라고 했을때 하루하루를 검색해 볼 수가 없겠지요? 이같은 경우에

Python을 이용해서 원하는 데이터를 긁어오는 방법을 배워보도록 하겠습니다.



[www.wunderground.com]





참고할사이트는 날씨정보사이트입니다. 

이 사이트에서 URL주소를 이용해서 긁어오게되는데요~


> 먼저 2009년 1월1일 버팔로공항의 날씨를 보여주는 페이지로 가볼까요?


http://www.wunderground.com/history/airport/KBUF/2009/1/1/DailyHistory.html?req_ciry=NA&req_state=NA&req_statename=NA&MR=1

: URL주소를 살펴보면 KBUF(버팔로공항),2009(년),1(월),1(일) 이렇게 정보가 담겨있습니다.

  URL주소에서 숫자만 바꾸면 다른 날의 날씨페이지가 뜨게되어있는 구조입니다.



>이같은 원리를 이용하여 PYTHON에서 이렇게 코드를 작성하게되는데요~ 이렇게하면 버팔로공항의 2009년 데이터를 얻을 수 있습니다.

http://www.wunderground.com/history/airport/KBUF/2009/" + str(m) + "/" + str(d) + "/DailyHistory.html




최고온도 데이터만 긁어오기!


2009년 버팔로공항의 모~든 데이터를 긁어오면 긁어온 의미가 없습니다~ 다시 하나하나 읽어봐야기때문입니다ㅠㅠ

여기서다시 '최고온도'데이터만 긁어오는것이 오늘 데이터 수집의 목표입니다.



첫번째, 페이에서 소스보기 버튼을 이용해 최고온도 데이터가 어디에 위치해있는지 파악합니다.

마우스 오른쪽버튼을 눌러 [페이지소스보기]를 클릭하면 페이지의 소스를 볼 수가 있는데요 소스페이지에서 Ctrl+F키를 이용하여 원하는 정보를

검색하면 쉽게 찾아볼 수 있습니다.



[Ctrl+F 기능을 이용하여 원하는 데이터 찾기]


살펴보니 class속성이 nobr인 태그 중 2번째에 원하는 값인 '-3'(최고온도)가 있는것을 확인했습니다.

그렇다면 이제 저 위치에 있는 데이터를 불러오도록 코드를 작성하고 날짜에만 변화를준다면 2009년의 모든 최고온도 데이터를 받을 수 있겠지요?



Temp = soup.fetch(attrs=("class":"nobr")[3].span.string


이같은 코드로 클래스가 nobr인 것 중에 [3](2번째에 있는 값)을 불러내봅니다.




이렇게 모든코드를 정리해서 python으로 돌려보니 이렇게 원하는 날짜와 최고온도가 기록되는 모습을 확인할 수 있었습니다.!

배우면 배울수록 신기한 데이터크롤링인 것 같습니다.


다음시간에는 이러한 방법을 응용해서 직접 데이터를 끌어와보도록 하겠습니다.

궁금하신 사항은 댓글로 남겨주세요~