다양한 포멧 데이터 수집 - 다양한 데이터 읽기 - XML/JSON 파일

5. 다양한 데이터 읽기 - XML/JSON 파일

5.1. 다양한 데이터 읽기 - XML 파일

  • XML(Extensible Markup Language)
    • 특정 목적에 따라 데이터를 태그로 감싸서 마크업하는 범용적인 포멧
    • 마크업 언어는 태그 등을 이용하여 데이터의 구조를 기술하는 언어의 한 가지
    • 가장 친숙한 마크업 언어가 HTML
    • XML은 HTML과 마찬가지로 데이터를 계층 구조로 표현
    • XML 기본 구조
      <태그 속성="속성값">내용
      
- 태그와 속성은 특정 목적에 따라 임의로 이름을 정해서 사용
32인치 LCD 모니터
- 다른 요소와 그룹으로 묶을 수도 있음
32인치 LCD 모니터 24인치 LCD 모니터

연습문제: XML 파싱

다음과 같이 출력 : 도시별 가장 시간대가 빠른 때의 기상예측
---------
서울: 구름조금
인천: 구름조금
---------
다음 셀에 다음 코드를 넣고 다음 마지막 문장을 입력하여 코드를 완성하시오
from bs4 import BeautifulSoup
import requests
import datetime
import json

info_url = 'http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109'
response = requests.get(info_url)
soup = BeautifulSoup(response.content, 'lxml')

locations = soup.find_all('location')
for location in locations:
    [----------------------------------------------------------------------]
from bs4 import BeautifulSoup
import requests
import datetime
import json

info_url = 'http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=109'
response = requests.get(info_url)
soup = BeautifulSoup(response.content, 'html.parser')

locations = soup.find_all('location')

for location in locations:
    print(location.find('city').text, ":", location.find('wf').text)
서울 : 구름조금
인천 : 구름조금
수원 : 구름조금
파주 : 구름조금
이천 : 구름조금
평택 : 구름조금
백령도 : 구름조금
과천 : 구름조금
광명 : 구름조금
강화 : 구름조금
김포 : 구름조금
시흥 : 구름조금
안산 : 구름조금
부천 : 구름조금
의정부 : 구름조금
고양 : 구름조금
양주 : 구름조금
동두천 : 구름조금
연천 : 구름조금
포천 : 구름조금
가평 : 구름조금
구리 : 구름조금
남양주 : 구름조금
양평 : 구름조금
하남 : 구름조금
안양 : 구름조금
오산 : 구름조금
화성 : 구름조금
성남 : 구름조금
의왕 : 구름조금
군포 : 구름조금
안성 : 구름조금
용인 : 구름조금
광주 : 구름조금
여주 : 구름조금
과제1: 전국 날씨 예측 데이터 도시별, 일자(오전,오후)별 pandas DataFrame 만들고, 출력하기
사용 데이터: http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnId=108
과제2: 아파트매매 실거래자료 데이터 읽기
- https://www.data.go.kr/dataset/3050988/openapi.do 에서 아파트매매 실거래자료 API 권한을 신청하고,
- 다음 지역/계약월 XML 데이터를 수신받아서, pandas DataFrame 으로 만들어 출력
- 지역: 서울특별시 양천구
- 계약월: 201708
- pandas DataFrame 컬럼명
   '거래금액', '년', '법정동', '아파트', '월', '일', '전용면적', '지번', '지역코드', '층'
   

5.2. 다양한 데이터 읽기 - JSON 파일

day1_data_science_crawling.ipynb 파일의 3.2. Open API(Rest API)를 활용한 초간단 크롤링 실습 예제 코드 참고