[python] crawler (공공데이터포털_여객터미널실시간 운항정보_XML)
2021. 5. 1. 23:18ㆍPython/코딩
Ver. Jupyter Notebook (Anaconda3)
▶ crawler_공공데이터포털_여객터미널실시간 운항정보_XML
# 공공데이터 이용 방법
1. 공공데이터포털 (http://data.go.kr)
2. 필요한 데이터 검색
3. 활용신청
4. 참고문서.docx 참고하여 작성
# 요청url = 'http:서버에 요청하는 주소?요청변수(parameters)'
# .docx파일의 항목구분 : 1은 필수 0은 선택
JeongJaeyoung0/crawler
Contribute to JeongJaeyoung0/crawler development by creating an account on GitHub.
github.com
2021.05.10
# "백령도" 관련 여객정보 가져오기
pwd
### Step 0. 준비
import requests # 서버로 요청을 보내서 응답(데이터)을 받는 라이브러리
import xmltodict # xml 데이터를 dictionary로 변환해줌
### step1. "url? + parameter(api_key)" 정의하기
# "url" 입력
url = "https://opendata.icpa.or.kr/OpenAPI/service/ipaFerryNavigatInfo/getDmstcNvgList"
# 서비스키(api인증키) 디코딩(unquote)
api_key = "Encoding" or "Decoding"
api_key_decode = requests.utils.unquote(api_key)
api_key_decode
# 파라미터 참고 : OpenAPI활용가이드
parameters = {"ServiceKey":api_key_decode, "numOfROws":10, "pageNo":1}
parameters
### step2. xml 데이터 확보
# get메소드(url, parameter 입력)로 xml 데이터 가져오기
req = requests.get(url, params = parameters)
req.text # -> xml 데이터 확보
# 가져온 xml 데이터를 dictionary 형태로 바꾸기(xmltodict 이용)
xml_data = xmltodict.parse(req.text)
xml_data
### step3. xml 데이터에서 내용만 추출
informations = xml_data['GetDmstcNvgListResponse']['body']['item']['GetDmstcNvgListVO']
print(len(informations))
print(type(informations))
informations
### step4. 필요한 정보만 추출
data = informations[0]['alocname']
data
# "백령도" 관련된 정보만 가져오기
for data in informations:
if data['alocname'] == '백령도':
print("기항지명: {}".format(data['alocname']))
print("인천항 출발시간: {}".format(data['starttime']))
print("기항지 도착시간: {}".format(data['alocarvltime']))
print("기항지 출발시간: {}".format(data['alocstarttime']))
print("인천항 도착시간: {}".format(data['arvltime']))
print("운항정보: {}".format(data['nvginfoname']))
print("항로명: {}".format(data['ruteName']))
print("선명: {}".format(data['shipname']))
print("선사명: {}".format(data['wtorcmpname']))
print("")
'Python > 코딩' 카테고리의 다른 글
[python] crawler (소방청 국가화재정보센터) (0) | 2021.05.09 |
---|---|
[python] crawler (공공데이터포털_관광코스별 관광지 상세 날씨 조회서비스_JSON) (0) | 2021.05.01 |
[python] crawler (instagram) (0) | 2021.05.01 |
[python] crawler (naver news) (0) | 2021.05.01 |
[python] crawler (naver blog) (3) | 2021.05.01 |