환경변수를 이용한 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
깃 허브에도 인증키없이 업로드가 됨
'자료조사' 카테고리의 다른 글
지리데이터 수집이 용이한 국토정보맵 (0) | 2024.03.14 |
---|---|
절대경로와 상대경로 (0) | 2024.01.30 |
캐시메모리(Cache Memory)가 무엇인가? (1) | 2024.01.28 |
[pandas] loc와 iloc의 차이 그리고 사용방법 (1) | 2024.01.04 |
[Python] 시퀀스 자료형 (sequence type) (0) | 2023.12.30 |