brunch

You can make anything
by writing

C.S.Lewis

by 마르코 Mar 10. 2016

브런치 글 좀 대신 올려줘

똑똑한 게으름을 지향한다면

아래 링크는 <내 손 안의 비서> 첫 글이자 전체 목차




올해 목표는 매일 글을 한 편씩 브런치에 올리는 것이다. 하지만 일을 하느라 바쁠 때도 있고, 글이 잘 써지는 날도, 안 써지는 날도 있기 때문에 매일 쓰지는 않고 잘 써지는 날 2~3편씩 몰아서 써두곤 한다. 그러다 보면 [대기], [작성중], [완료]처럼 글의 제목에 라벨을 붙여서 보관하다가, 그 날 원하는 글을 올린다. 예약 발행 기능이 없는 브런치가 원망스럽다.



정신없이 일을 하다 보면 누가 대신 브런치에 글을 좀 올려줬으면 싶을 때가 있다. 그래서 한 번 만들어 보았다.



앞의 글("파이썬 7호, 내 브런치 독자를 알려줘")에서는 내 브런치 글을 구독하는 독자분들과 그 독자분들이 좋아하는 다른 작가분들을 알아보았다. 이번에도 지난번과 마찬가지로 코드가 조금 길어져서 지난번에 만들어둔 깃허브에 파일을 추가해서 작업했다.



현재 페이스북을 통한 로그인만 지원하는데, 실행시키면 '[대기]' 혹은 '[작성중]'이라는 라벨이 붙지 않는 글 중에서 무엇을 선택할 것인지를 물어보고, 가지고 있는 매거진 중 어느 매거진에 발행할 것인지를 물어본다. 해당 질문에 대한 대답을 '숫자'로만 입력하면 자동으로 업데이트까지 완료해준다. 위의 깃허브에서 프로젝트를 다운로드하고 'brunch_auto_upload.py' 파일 안에 페이스북 계정 정보를 입력하고, 브런치 작가 아이디를 입력하고 'python brunch_auto_upload.py'이라고 실행시키면 모든 작업이 끝난다.


이번에는 브라우저를 조작하기 위해서 selenium라는 오픈소스 프로젝트를 이용하였다. 앞의 글에서처럼 API를 이용할 수 있는 경우에는 속도가 월등히 빠르기 때문에 API를 사용하는 게 좋은데, 글을 발행하는 것처럼 로그인을 해야 한다든지 특정 버튼을 눌러서 작업을 수행해야 한다든지 하는 자동화 과정에는 selenium을 쓰는 것이 좋다. 실제로 selenium은 웹 서비스의 안정성 확보를 위한 테스트 코드를 짜는데 많이 사용된다. 코드 수정하고 전체 테스트 코드를 실행시켜보면, 일일이 테스트를 해보지 않아도 작동하는지 확인할 수 있기 때문이다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari