Get Google Sheets Data (문서 분류 자동화 프로젝트)

2019. 10. 10. 00:49개발 삽질기

문서 분류 자동화 프로젝트

 

2019.10.15

본 프로젝트를 시작하게 된 계기는 이러하다.

출퇴근시간마다 Feedly를 사용하여 전날에 있었던 '키워드' 검색 뉴스 기사를 확인하고,

Medium에 들어가 개발 관련 소식을 확인하곤 한다. (Feedly 20-30분, Medium 15-20분)

 

그 중에서도 Medium에서 인상깊게 본 내용은 Article의 Link를 copy하여 google sheet에 저장해 놓는다.

주말에 번역/정리하려는 생각이다. 하지만 주말은 주말대로 스터디 모임때문에 바쁘다. 

 

그렇게 링크만 모인게 어느덧 600 여개.

spreadsheet에는 link만 적혀있어서, '며칠 전에 본 글이 어디있지?' 하고 찾을 수도 없다. (제목 없이 Link만 있음)

그렇다고 600개 링크를 하나하나 들어가서 제목을 가져올 수도 없는 노릇.

 

link를 가지고 크롤링을 통해서 자동으로 제목을 달아주도록 하자.

(일을 해결하기 위해서 일을 만든다.개발자들이 게을러지기 위해서 열심히 일한다지)

그럼 기왕 할 거 제목뿐만 아니라, 분류 정보도 생성해보자. (원래 내용을 통해 제목을 생성하는 걸 해보려고 했는데, generate영역은 아직)

본래 기입된 제목들은 내용을 연상하기 힘든 것들도 많은데, 본문을 통해서 제목을 만들면 더욱 알기 쉽지 않을까ㅋㅋ 퀄리티는 보장 못함

 

 

 

2019.10.16

google sheet에서 데이터를 불러오고 제목을 가져오는 코드 작성함.

참고: https://towardsdatascience.com/replacing-sheets-with-python-f1608e58d2ca

 

 

번역 :

Google Sheets API를 사용하기 위해 자격 증명을 설정해야 하기 때문에 Google Sheets에 접속하는 것은 복잡함.

이론상으로는 공개적으로 이용 가능한 Google Sheet (즉, 소스 HTML 코드를 뽑아내는 것)을 긁어낼 수 있지만, HTML 덤프를 유용한 것으로 바꾸기 위해  beautifulsoup와 같은 도구들로 많은 데이터 조작을 해야함.

시도해 보았지만 결과는 엉망이었고 노력할 가치가 없었다. API도 그렇고.

또한, pandas dataframe으로의 보다 원활한 전환을 위해 gspread를 사용할 것.

 

OAuth2 자격 증명 가져오기
Google Developers Console로 이동하여 새 프로젝트를 생성하거나 기존 프로젝트를 선택.

"프로젝트 작성" 버튼을 클릭

프로젝트 이름 선택

 

<작성중>

 

 

 

2019.10.16

600개 중에 120개를 불러왔는데, 갑자기 에러가 발생.

Response 찍어보니까 200. 정상인 듯 한데..(?)

 

 

 

2019.10.16

집에 돌아와 실행해보니, 별다른 이상 없이 돌아간다.

그런데 중간중간 에러가 발생.

 

에러는 주로 두가지.

1.  API 호출 초과,

2. 권한(?)문제


결론부터 말하면, 둘다 (주피터노트북) 커널만 종료/재실행 해보면 돌아간다.

API 제한에 안걸리는 방법을 알아봐야겠다.

중간중간 에러가 나니, 돌려놓고 한번에 확인할 수가 없음ㅠ

 

 

 

2019.10.16

1.API 우회? 

2.API많이 안쓰고 하는방법?

3.로컬로받자..ㅠ

 

로컬로 받으니 1초만에 끝난다

이번 프로젝트의 교훈..

로컬로 할 수 있으면 로컬로 하자...

 

이번 작업은 한꺼번에 수백개를 돌려서 그런 것이고

내가 기획한 프로젝트는 API 제한에는 걸리지 않을 것 같다.

 

<기획한 프로젝트>

1. 출퇴근시간에 인상깊게 본 Medium Article의 url을 Google Sheet에 기록한다.

2. 밤 12시가 되면, 서버(라즈베리파이)에서 그날 올라온 url을 가지고 Article 제목과 문서 분류 label 을 달아준다.

( clustering 도 할 예정)

 

 

문서 분류 자동화 프로젝트

github

medium

 

 

끝-