크롤링 데이터를 구글스프레드시트로!

크롤링 데이터를 구글스프레드시트로 보냈을 때 장점.

1. 관리가 편해진다.

우선적으로 팀 공유가 원할하다. 크롤링 데이터는 보통 csv파일등으로 저장되는데 이러한 데이터를 1차 가공 후에 스프레드시트로 넘겨도 되고, 스프레드 시트에 데이터를 먼저 넘기고 스프레드시트내에서 데이터 작업을 할 수도 있다. 이는 엑셀에서 유연한 데이터 핸들링 스킬만 숙지한다면 1만 ~ 10만개 정도의 데이터 정도는 간단하게 만져볼 수 있다.

 

2. 시각화의 편리함과 이메일 보내기
시각화와 이메일을 보내기가 편해진다. 아무래도 파이썬내부에서 metaplot등 라이브러리를 써서 이미지로 추출하는거보다 훨씬 다양한 리소스를 다룰 수 있다. 데이터 스튜디오에서 차트를 구성해도 되기 때문 물론 지도형 데이터나 API등으로 웹페이지에 구현해야 하는 경우는 논외.

 

3. 속도의 경제.

뭐든 빠르게 만들어야 하는 현업에서 데이터 정제부터 관리까지 속도감 있게 진행할 수 있다. 파이썬은 말그대로 크롤링과 데이터의 정제, 스프레드시트는 온라인 DB로 활용하는 방법이다. 이는 실시간으로 온오프라인의 데이터에 빠르게 접속할 수 있게 도와주며 생산성이 늘어나는 결과가 된다.

 

파이썬에서 구글 드라이브(Google Drive)로 보내는 방법.

1. 구글드라이브에 업로드

csv 파일을 통째로 업로드 하는 방법. csv파일명이 날짜나 고유 명사로 구분되어 있으면 사용할 수 있는 방법이다. 예를들면 파일명이 20220820 처럼되어 있는등 구분이 편해야 한다.

 

파이썬에서 구글드라이브로 보내는 방법은 생각보다 어렵지 않다. 

 

pip install pydrive

 

pydrive 패키지를 설치해준 뒤,

 

from pydrive.auth import GoogleAuth

from pydrive.drive import GoogleDrive

 

위 2가지를 호출하자. 그 뒤에는 auth 권한 체크에 대한 부분을 정의해야 한다.

 

gauth = GoogleAuth()

drive = Googledrive(gauth)

 

그 후엔 아래처럼 파일을 정의하고 구글드라이브 폴더 ID를 아래 '폴더 ID' 부분에 바꿔넣어주자.

upload_file_list = ['1.csv', '2.csv']
for upload_file in upload_file_list:
	gfile = drive.CreateFile({'parents': [{'id': '폴더 ID'}]})
	gfile.SetContentFile(upload_file)
	gfile.Upload() 
    # 파일 업로드

 

5줄도 안되는 코드로 구글드라이브에 csv파일을 올려놓고 쓸 수 있는 큰 장점.

 

파이썬에서 구글스프레드 시트에 직접 쓰기

여기서부터는 살짝 난이도가 올라간다.

먼저 구글스프레드시트 API에 대해서는 구글드라이브와 마찬가지로 Oauth를 통해 인증받은 뒤 "좌표"형식으로 운영된다.

 

여기서 가장 많이 실수 하는 부분은 바로 좌표 부분이다.

 

언제나 그렇듯 설치는 매우 쉽다.

pip install gspread

 

import gspread를 통해 스프레드시트 패키지를 불러오고

 

crudential 이라는 녀석을 정의해주어야 한다.

예제에서는

gc = gspread.service_account()

로 정의 한뒤

 

wks = gc.open("열고 싶은 시트 ID).sheet1

 

같은 형태로 시트를 열람한다.

 

import gspread

gc = gspread.service_account()

wks = gc.open("열고 싶은 스프레드시트 Doc ID".sheet1

wks.update('A1',[[1,2],[3,4]])
#열람한 시트에 업데이트.

wks.update('B2',"스프레드시트에 직접 데이터를 입력합니다.")

 

csv파일에 수록된 내용을 통째로 업데이트 하고싶은 경우엔 pandas와 함께 사용하면 수월해진다.

 

spreadsheet_url = '가져오려는 문서'
print("구글 시트 문서확인중")
# 스프레스시트 문서 가져오기
doc = gc.open_by_url(spreadsheet_url)
# 시트 선택하기
# worksheet = doc.worksheet('시트1')
# worksheet.update('B1','hello')
time.sleep(5)
try:
    content = open(path,'rt',encoding='latin-1').read()
except:
    content = open(path,'rt',encoding='UTF-8').read()
gc.import_csv('스프레드시트 문서 ID',content)
time.sleep(5)

 

gspread 에 익숙해진다면 충분히 아래 같은 크롤링이 가능해진다. 

 

https://smartstore.naver.com/zeey/products/7008948781

 

파이썬 페이스북 광고 데이터 수집 자동화 (수강권 + 코드) : 스킬샵

페이스북 광고 보고서 파이썬으로 자동화로 생산성 300% 올리기

smartstore.naver.com