환경변수를 이용한 API 크롤링 /서울시 열린데이터 광장 사용

2024. 2. 1. 13:38자료조사

왜 환경변수를 이용해야 할까?

깃허브나 스트림릿처럼 배포가 되는 사이트에 나의 인증키가 올라가면 보안의 문제가 생기기 때문에 공공데이터를 사용할때 받는 인증키를 가리고 업로드하고 변수지정을 통해 다른사용자들이나 팀원들간에 편의를 제공하기 위해서 

사용 코드 

# _*_ coding:utf-8 _*_
import streamlit as st
import requests
import pandas as pd
from dotenv import load_dotenv
import os

#.env파일이 활성화됨
load_dotenv()

SERVICE_KEY =os.getenv('SEOUL_API_KEY')


data = None

for j in range(1,3):
    url = f'http://openapi.seoul.go.kr:8088/{SERVICE_KEY}/json/tbLnOpendataRtmsV/{1+((j-1)*1000)}/{j*1000}'
    # url = f'http://openapi.seoul.go.kr:8088/{service_key}/json/tbLnOpendataRentV/1/1000/2023/11560'
    print(url)
    
    #하나의 URL을 Json으로 받아 데이터 프레임으로 만듦
    req = requests.get(url)
    content = req.json()
    con = content['tbLnOpendataRtmsV']['row']
    result = pd.DataFrame(con)
    
    data = pd.concat([data, result])
    
data = data.reset_index(drop=True)
data.head()

data.to_csv('./seoul.csv',index =False)

사전설정

.gitignore파일을 열어 Environments 검색후 없다면 하단부에 코드추가

# Environments
.env

 

스트림릿설정은 아래 코드 

#Streamlit
.streamlit/

 

 

 


라이브러리 설치 

pip install python-dotenv

 

 

프로젝트 파일에 .env파일 생성 

인증키를 .env 파일 안에 지정

 

라이브러리 실행

from dotenv import load_dotenv
import os

 

 

 

 

 

 

load_dorenv() 코드로 프로젝트 폴더에 있던 .env를 활성화 할 수 있음

SERVICE_KEY = os.getenv('')를 사용하여 .env안에 저장된 인증키를 불러 옴

인증키가 필요한 부분을 {SERVICE_KEY}로 대체하여 사용 할 수 있음

 

이렇게 설정한 뒤 Github에 푸쉬하게 되면 인증키가 보이지 않게 올릴 수가 있음 

https://github.com/JiHoonYoon00/streamlit-mulcamp/tree/main

깃 허브에도 인증키없이 업로드가 됨