기본 콘텐츠로 건너뛰기

3월, 2023의 게시물 표시

(완료) Cron의 crontab 명령으로 Python code를 스케쥴대로 실행하기(Run python code by fixed interval with using Cron)

(완료)1# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.) (완료) 2# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.) 위 포스팅 내용 대로, 1. python을 통해 selenium 모듈로 crawling을 해서 xlsx 파일을 이메일로 받고 2. xlsx 파일은 Zapier 라는 노코드 툴에서 Email parser by Zapier 와 2개의 Zap 으로 처리해서 구글시트에 업데이트를 했다. 하지만 계속 실시간 데이터를 유지하는게 필요하다.  그럼 이제  추가적으로 이제 이걸 딜레이 시간 을 포함해서 정기적으로 실행되도록 해보자. 딜레이가 Zapier에서 10분 나머지 작업이 진행되는데 2분 정도로 총 12분 걸리는 것으로 확인을 했다.  그리고 나의 경우엔 월요일부터 금요일까지, 아침 7시 30분 부터 저녁 6시 00분까지 30분 간격으로 업데이트 되도록 하겠다.   딜레이를 고려한다면 매 시 48,18분에 python 코드가 돌아가면 얼추 정각에 완료되는 거군! 그러기 위해서는 cron 이라는 리눅스 스케줄러를 사용하려고 한다. 1. terminal 을 열고 sudo apt install cron 으로 crontab을 설치 2. crontab -e 명령어로 VI편집기 오픈 3. i 를 눌러서 insert mode로 전환 4. 아래 명령어

(완료) 2# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.))

우리 회사는 메인툴로 구글시트를 쓰기 때문에 구글시트에 업데이트가 필요하다.  자 그래서!  이번에는 지난번에 뽑아낸 xlsx 파일을 No-code 툴인 Zapier를 활용해서 특정 구글시트에 업데이트 해보려고 한다. 자 지피지기면 백전백승이라고 하지 않았는가 큼큼.. 메일의 html 소스를 살펴보자. 보면 다운로드 링크가 a로 시작해서 중간에 href(난 이걸 흐래프로 읽는다. ㅎㅎㅎㅎ )로 이어지는 a태그를 쓰는걸 확인할 수 있다.   이 URL을 어떻게 가져올 것인가.. 고민끝에 찾아낸 것은 바로 Zapier e-mail parser 뭐 literally 이메일 구문을 분석해주는? 뭐 그런 툴이다. 무료인지는 모르겠다. 아마 Zapier 플랜을 따라기에 라이트하게 쓴다면 무료가 아닐까 싶다. E-mail parser by Zapier(https://parser.zapier.com/)에 가입/로그인을 하고 이메일 계정을 하나 생성하면 된다. (그러면 이렇게 내 메일박스와 이메일 주소가 나타난다. 이메일 주소 편집이 귀찮아서 그 바로 위에서 살짝만 보이게 하고 잘랐다.) 그 뒤 이런식으로 URL 있는 부분을 색인처리하면 이 색인처리된 부분에 이름을 지어줄 수 있다. 나는 xlsxurl 로 지었다. 그 다음엔 이제 파이썬이 웹훅을 보내면 그걸 받아서 E-mail parser by Zapier 에 있는 봇 이메일 주소로 포워딩하는 Zap을 하나 만들어서 publish 한다. 여기서 딜레이는 10분을 줬다. 파일을 생성하고 메일이 오기까지 시간이 데이터의 양에 따라 들쑥날쑥 하기에 여유롭게 설정했다. 그다음에 새로운 Zap을 만들고 이메일 parser에서 받은 내용이 구글시트에 업데이트 되도록 한다. Parse Output 의 이름인 Xlsxurl 에 내가 원하는 URL이 들어있다. 지출 데이터가 잘 업데이트 된다! (회사 지출 정보이기에 일부러 잘라서 첨부)

(완료)1# Python 으로 지출관리 사이트에서 모든지출 데이터 xlsx 파일 뽑아내고 Zapier로 구글시트에 업데이트하기 (Using Python, crawling and exporting company wide expenses data with Xlsx file. Update a Google sheet from this Xlsx file with Zapier.)

 우리 회사는 스팬딧이라는 지출관리 프로그램을 쓴다.  회사 전체 지출을 가져오고 실시간 지출 데이터를 통해 예산 확인을 손쉽게 하려는 목적이다. 아이디어 구상은 이렇다. 1. 지출 데이터는 이메일로만 출력할 수 있다. (여러가지가 있지만 나에게 필요한 것은 구글시트에 들어가기 좋은 데이터이므로 xlsx 출력을 하고자함.)  2. 이 지출 데이터를 파이썬으로 크롤링을 하는데 Selenium 으로 로그인하고, 메일로 받는 것 까지는 여기까지 과정에서 완료. 하되 웹훅을 하나 보낸다. 어디로? Zapier로 3. Email parsor by Zapier 를 통해 이메일 본문 안의 URL의 파일을 다운받아서 구글 드라이브에 업로드하는 것  파이썬 모듈 중 핵심은 Selenium 과 requests 이다. - Selenium  모듈 : 웹 브라우저 자동화 도구로, Chrome 브라우저를 제어하여 Spendit 앱의 사용자 인터페이스를 자동으로 조작하는데 쓰임. - reuquests 모듈 : 웹훅  일단 코드부터 오픈해보자면.. 아래와 같다.