데이터시각화 첫 포스팅으로 '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으로 돌려보니 이렇게 원하는 날짜와 최고온도가 기록되는 모습을 확인할 수 있었습니다.!
배우면 배울수록 신기한 데이터크롤링인 것 같습니다.
다음시간에는 이러한 방법을 응용해서 직접 데이터를 끌어와보도록 하겠습니다.
궁금하신 사항은 댓글로 남겨주세요~
'시각화 > 파이썬' 카테고리의 다른 글
Python으로 만드는 인포그래픽 :: 공간시각화 :: 공간시각화 응용 #1 :: 서울시 동별 코로플레스 (2) | 2014.03.13 |
---|---|
Python으로 만드는 시각화 :: 공간시각화 :: 지도시각화 만들기 #2 (11) | 2014.03.10 |
Python으로 만드는 시각화 :: 공간시각화 :: 지도시각화 만들기 #1 (0) | 2014.03.05 |