결과 저장 주식 뉴스 분석 프로젝트 <news crawl><3>

프로젝트 개요 및 각 글들의 링크: https://namth.tistory.com/18

 

크롤링 및 예측을 하였으므로 이번 글에는 결과를 저장하는 코드 및 방법에 대해서 작성해보려고 한다.

크롤링, 분석 결과는 2가지 장소에 저장되는데, 구글 스토리지(GCP Storage), mongodb에 저장이 된다.

구글 스토리지에는 크롤링 결과와 분석 결과가 같이 저장되며,

mongodb에는 분석 결과만 저장이 된다.

 

 


 

구글 스토리지

 

구글 스토리지에 크롤링 결과와 분석 결과가 저장되는데, 저장 경로는 아래와 같이 저장했다.

 

 

# 경로 예시

원본 뉴스 제목: tesla/en/2022-02-02_01:00:00/en_header.txt
영어로 번역된 뉴스 제목: tesla/en/2022-02-02_01:00:00/translated_headers.txt
감정분석 결과: tesla/en/2022-02-02_01:00:00/result.json

 

 

 

 

 

 

로컬에서의 테스트 경우 아래 코드를 바로 사용하지 못한다.

구글 스토리지 객체를 생성하기 위해서는 인증정보가 필요한데, 보통 Service account의 키(json)를 이용하여 인증을 한다.

만약 실행되는 환경이 GCP위라면 아래 코드처럼 인증정보를 넣지 않아도 알아서 default인증 정보를 찾아서 인증한다.

두 가지 방식의 샘플코드이다.

 

 

 

 

 

GCP 참고자료

cloud run service account: https://cloud.google.com/run/docs/securing/service-identity?hl=ko 

storage scope: https://cloud.google.com/storage/docs/authentication#oauth-scopes

python 클라이언트 라이브러리 개발자 문서: https://googleapis.dev/python/storage/2.5.0/index.html

service account key: https://cloud.google.com/iam/docs/creating-managing-service-account-keys?hl=ko

 


 

MONGO

 

mongo에는 분석 결과만 저장하였다

문서의 경로와 포맷을 아래와 같이 설정하였다.

 

 

# 경로 및 문서 포맷
# 국가코드: ISO 3166-1 alpha-2
# 현재 영어(미국)로 고정시켜 놓아서 사실상 /stock/en이 경로

/stock/{국가코드}
{
    uuid: str,
    createdAt: datetime,
    sentiment: List[dict],
    subject: str
}

 

 

 

 

 

MONGO 참고자료

 

클라이언트 라이브러리 문서: https://pymongo.readthedocs.io/en/stable/tutorial.html

 

 

# 2022.09.30 수정