구글 드라이브 Python으로 내용 긁어오기

신원근·2023년 11월 26일
0

📌 개요

  • 이번 포스트에서는 공지 이메일을 보내기 전 필요한 내용을 긁어오는 과정에 대해서 다뤄볼 생각입니다.
  • 구글 스프레드시트는 다음과 같이 있습니다.
    - 발표자 이름
    - 발표 날짜
    - 발표 주제
    - 실험 or 논문 발표

📌 서비스 계정 만들기

  • 구글 스프레드시트는 구글 드라이브에 저장된 상태이기 때문에 해당 구글 스프레드시트는 권한을 가진 사람만 열람을 할 수 있습니다.

  • 하지만, python에서 내용을 크롤링 하기 위해서는 서비스 계정을 만들어 권한을 받아야 합니다.
    https://cloud.google.com/iam/docs/creating-managing-service-accounts#iam-service-accounts-create-console

    • 위 링크 접속 후에 ‘서비스 계정 만들기’로 이동을 찾아 들어간다.

    • 프로젝트가 없으면 서비스 계정도 만들지 못하므로 프로젝트를 먼저 만들어야 합니다.

      • 아무 조건없이 프로젝트를 만들수 있습니다!
      • 만든 이후에 프로젝트 선택으로 해당 프로젝트를 선택하면 됩니다.
    • 이후, 서비스 계정 탭에서 서비스 계정을 만들면 됩니다.

      • 세부 정보는 원하는 이름으로 만들면 됩니다.
      • 역할은 소유자 혹은 편집자로 선택하면 됩니다.
      • 완료 버튼을 눌러 서비스 계정을 만듭니다.
    • 서비스 계정이 만들어졌지만 해당 계정의 키는 존재하지 않는다.

    • 위 그림처럼 작업을 눌러 키 관리에 들어가서 설정해줘야 한다.

    • 접속하여 새 키 만들기에 들어가 Json 형식의 새로운 키를 만들어준다.

    • Json 형식의 비공개키가 컴퓨터에 저장된다.

  • 서비스 계정이 만들어진 이후, API 및 서비스에서 라이브러리를 선택한다.

  • 구글 스프레드시트 API를 검색하여 들어가서 연동시켜준다.

  • 대상이 되는 스프레드시트에 권한을 서비스 계정에게도 공유를 하면 환경 설정은 끝나게 된다.


📌 Python 코드로 정보 불러오기

import gspread
from oauth2client.service_account import ServiceAccountCredentials

#scope으로 https://spreadsheets.google.com/feeds 을 항상 설정
scope = 'https://spreadsheets.google.com/feeds'
json = './mypassword.json'

#json파일은 비공개키
credentials = ServiceAccountCredentials.from_json_keyfile_name(json, scope)
gc = gspread.authorize(credentials)

#url은 대상이 되는 스프레드시트 url
sheet_url = 'url'
doc = gc.open_by_url(sheet_url)

#구글 스프레드시트의 내용을 가지고 옴
worksheet = doc.worksheet('시트1')
cell_data = worksheet.acell('B2').value
print(cell_data)

> 출력값
치킨 만들기

profile
고려대 세종 IA-AI Sec Lab 학부연구생, 석박통합과정(진)

0개의 댓글