python

[혼자하는 파이썬] 금융감독원 보도자료 목록 크롤링

알세지 2024. 3. 6. 11:40

 

혼자한다.

아니다. 지피티와 함께 한다.


정부 기관들은 여러가지 오픈API를 제공한다.

아래 코드는 금융감독원의 보도자료 API를 이용해서 보도자료 목록을 엑셀로 저장하는 코드다.

API 코드는 금감원 사이트에서 별도로 받아야 한다.

기간을 지정하고, API 키값을 입력하면 엑셀파일이 생성된다.

 

import requests

def crawl_bodo_info(start_date, end_date, auth_key):
    base_url = f"https://www.fss.or.kr/fss/kr/openApi/api/bodoInfo.jsp?apiType=json&startDate={start_date}&endDate={end_date}&authKey={auth_key}"

    try:
        response = requests.get(base_url)
        response.raise_for_status()  # 오류가 발생하면 예외를 발생시킴

        # JSON 응답을 딕셔너리로 파싱
        data = response.json()

        # 결과 확인
        if 'reponse' in data:
            result_data = data['reponse']
            if result_data['resultCode'] == '1':
                for item in result_data['result']:
                    print("제목:", item['subject'])
                    print("발행기관:", item['publishOrg'])
                    print("원게시글URL:", item['originUrl'])
                    print("등록일시:", item['regDate'])
                    
                    # 'contentsKor' 키가 있는지 확인 후 출력
                    if 'contentsKor' in item:
                        print("내용:", item['contentsKor'])
                    else:
                        print("내용: 내용이 없습니다.")
                        
                    print("-" * 50)
            else:
                print("조회 실패:", result_data['resultMsg'])
        else:
            print("데이터를 가져오지 못했습니다.")

    except requests.exceptions.RequestException as e:
        print("요청 중 오류가 발생했습니다:", e)

if __name__ == "__main__":
    # 사용자로부터 검색 시작날짜, 검색 종료날짜, 인증키를 입력받음
    start_date = input("검색 시작날짜를 입력하세요 (YYYY-MM-DD): ")
    end_date = input("검색 종료날짜를 입력하세요 (YYYY-MM-DD): ")
    auth_key = input("인증키를 입력하세요: ")

    # 보도자료 크롤링 함수 호출
    crawl_bodo_info(start_date, end_date, auth_key)