노트1/Python
[Python] 공공데이터 포털 OPEN API 사용법 (xml > 데이터프레임 변환, BeautifulSoup)
Paige09
2021. 12. 10. 17:34
위 포스팅은 xml 내용을 가져와서 보니 <item> 태그 형식으로 되어있지 않아서 xmltodict 라이브러리를 이용했다.
이번 포스팅은 <item>안에 값을 가지는 경우.
API 활용신청부터 인증키 발급까지는 이전 포스팅과 동일하다.
사용한 데이터는 <한국산업인력공단_해외진출 뉴스 정보>
import requests
url = 'http://apis.data.go.kr/B490007/worldjob6/openApi6'
params = {'serviceKey' : '발급받은 인증키' }
response = requests.get(url, params=params).text
print(response)
#bs4 사용하여 item 태그 분리
import bs4
from lxml import html
xmlobj = bs4.BeautifulSoup(response, 'lxml-xml')
rows = xmlobj.findAll('ITEM')
print(rows)
import pandas as pd
row_list = [] # 행값
name_list = [] # 컬럼 이름
value_list = [] # 데이터
for i in range(0, len(rows)):
columns = rows[i].find_all()
for j in range(0, len(columns)):
if i == 0:
name_list.append(columns[j].name) # 컬럼 이름 저장
value_list.append(columns[j].text) # 컬럼의 데이터 값 저장
row_list.append(value_list) # 각 행의 value 값 저장
value_list = [] # 초기화
result = pd.DataFrame(row_list, columns=name_list)
print(result)