파이썬(Python)/니트릴장갑 수출입 오픈 API

[무역|5|API] 니트릴장갑 수출입 - 공공데이터포털 API XML parsing (4부)

JJ Goh[Certified customs broker] 2020. 7. 3. 04:00

[무역|5|API] 니트릴장갑 수출입 - 공공데이터포털 API XML parsing (4부)

 
 
 이번 포스팅에서는 XML 데이터를 pandas DataFrame으로 전환시키는 방법에 대해 알아 보도록 하겠습니다.
 
 

 Open API 데이터 불러오기

 
 
 먼저, Open API에 의해 데이터를 불러들이기 위해 작성된 코드 전문을 보시겠습니다.
 
import pyautogui
from bs4 import BeautifulSoup
import requests as rs
import pandas as pd


pserviceKey = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

OpsEnv = "http://openapi.customs.go.kr/openapi/service/newTradestatistics/"
OpsName = "getitemtradeList"
rsearchBgnDe = pyautogui.prompt('시작연도월\n 입력형식 : YYYYMM')
rsearchEndDe = pyautogui.prompt('끝연도월\n 입력형식 : YYYYMM')
rsearchItemCd = pyautogui.prompt('HS code\n 입력형식: 4~10자리 숫자')

rurl = OpsEnv + OpsName + "?" + "searchBgnDe=" + rsearchBgnDe + "&" + "searchEndDe=" + rsearchEndDe + "&" \
       + "searchItemCd=" + rsearchItemCd + "&" + "serviceKey="+ pserviceKey

response = rs.get(rurl)

 

 

 1) 라이브러리 import

 

 다음과 같은 목적으로 해당 라이브러리를 사용하였습니다.

 

 a.  pyautogui -  코드의 재활용성을 높이고자 실행 시 매번 필요한 검색조건값을 제시해 주기 위해 prompt() 메소드를 활용할 목적입니다.

 

 b. bs4의 BeautifulSoup - 불러들인 xml 데이터를 읽어 들여 필요한 항목값들만 추출하기 위함입니다.

 

 c. requests - xml 데이터를 요청메시지 형식에 의거해 요청하기 위함입니다.

 

 d. pandas - BeautifulSoup에 의해 추출된 xml데이터를 DataFrame형태로 전환하기 위함입니다.

 

 

 

 2) pserviceKey 변수

 

 이 변수에 Open API 활용신청승인에 의해 받아둔 일반인증키 값을 넣게 됩니다. 

 

 

 

 3) OpsEnv = "http://openapi.customs.go.kr/openapi/service/newTradestatistics/"

 

 OpsEnv라는 변수에 운영환경 url값을 대입하였습니다.

 

 

 4) OpsName = "getitemtradeList"

 

 OpsName이라는 변수에 오퍼레이션명 값을 대입하였습니다.

 

 

 

 

 5) rsearchBgnDe = pyautogui.prompt('시작연도월\n 입력형식 : YYYYMM')

 

 rsearchBgnDe라는 변수에 pyautogui의 prompt 메소드를 적용해 사용자가 시작연도월 값을 YYYYMM의 형식으로 대입을 위한 입력을 하게 합니다. 

 

 

 

 6) rsearchEndDe = pyautogui.prompt('끝연도월\n 입력형식 : YYYYMM')

 

 

rsearchEndDe

라는 변수에 pyautogui의 prompt 메소드를 적용해 사용자가 끝연도월 값을 YYYYMM의 형식으로 대입을 위한 입력을 하게 합니다. 

 

 

 

 7) rsearchItemCd = pyautogui.prompt('HS code\n 입력형식: 4~10자리 숫자')

 

 

rsearchItemCd

라는 변수에 pyautogui의 prompt 메소드를 적용해 사용자가 HS code값을 4~10자리의 숫자형식으로 입력하게 합니다.

 

 

 

 8) rurl = OpsEnv + OpsName + "?" + "searchBgnDe=" + rsearchBgnDe + "&" + "searchEndDe=" + rsearchEndDe + "&" + "searchItemCd=" + rsearchItemCd + "&" + "serviceKey="+ pserviceKey

 

 rurl변수에 당 Open API활용가이드에서 예를 든 요청메시지의 형식과 일치시켜 대입받은 값들이 입력되도록 파이썬 문법 형식에 맞추어 값을 배열합니다.

 

 

 

 9) response = rs.get(rurl)

 

 response 변수에 requests 모듈의 get() 메소드로 해당 url로부터 데이터를 불러오도록 합니다.

 

 

 이 코드를 실행하면 pyautogui.prompt()에 의해 값을 입력하는 대화창이 뜹니다. 

 

 

 

 

 

 

 검색조건으로 시작연월은 201906을 끝연월은 202005를 HS code는 니트릴장갑의 HS code인 4015190000을 넣도록 하겠습니다.

 

 이제 xml데이터의 호출은 이루어졌습니다.

 다음으로 xml 형식을 pandas DataFrame형식으로 전환하도록 하겠습니다. 

 

 

(5부에서 계속..)

 

NPU(엔피유) 관세사무소

대표관세사 고장주

Tel) 031-986-7190

E-mail) sales@npucus.com

[NPU관세사무소 프로모션 페이지] https://www.tradenpu.com/npu_cus/

[무역비지니스 인텔리전스 서비스 | TradeNPU] https://www.tradenpu.com

[파이썬 실용 예제. 무역과 공공데이터] https://pdatinmylife.tistory.com

Certified Customs Broker JangJu Goh

Executive Customs Broker @ NPU Customs Consulting

CEO @ JG TradePlus

sales@npucus.com

Trade Compliance / Customs clearance management at foreign company

Working experience of Air export freight forwarding

Data Visualization / Independent development of business automation application – copyright of JGPO_Manager, JG Data Center, AutoCC and etc.

B2B consignment & direct export/import, B2C Overseas Buying Office consulting

Alibaba.com B2B trade / taobao B2C trade / Amazon.com global selling etc. Online trade regulation consulting.

Import license / Quarantine

English communication available

[TradeNPU for partnership proposal - JGTP] https://www.tradenpu.com/jgtp/

반응형