티스토리 뷰

개인적인 업무 자동화를 위해 GCE 위에 python crawler 를 하나 개발하고 있는데 이게 영 잘 안되는거다. 처음에는 selenium 을 잘못 사용했나 싶기도하고 HTML 을 잘못 파싱했나 싶은 의심도 들었지만 해당 코드가 Local PC 에서는 정상적으로 동작 하는 것이 확인되었다. 

무엇이 문제였을까? 문제를 확인하기 위해 에러 포인트 위치에서 아래와 같이 selenium 의 스냅샷 함수를 이용해서 페이지의 실제 화면을 확인해보았다.

browser.get_screenshot_as_file('error.png')

확인결과 놀랍게도 아래와 같은 내용이 확인되었다. 왜 계정이 이렇게 되었는지는 알 수 없다. 아니면 Gmail 자체적으로 클라우드에서의 접근을 막고 있는지도 모른다. 일단 로컬에서 https://g.co/recoer 에 접근해서 계정을 복구했다. 하지만 당연히도 그 계정은 문제가 없는 계정이었다.

당연한 이야기지만 복구 이후에도 동일한 문제는 계속 되었고 혹시나 싶은 마음에 GCE 위에서 recover 를 해보게되었다. 리커버 하는 행위를 문제가 발생한 디바이스에서 해야 할지도 모른다는 생각에서 시작되었다. 그리고 역시나 GCE 에서 복구후에 정상적으로 원하는 동작을 확인할 수 있었다.

여기서 중요한 포인트는 recover 하는 것도 크롤러를 만들어서 진행해야 한다는 것이다. 당연하겠지, 화면이 없으니까. 혹시라도 나와 같은 문제를 겪고 있거나 필요하신 분은 아래 코드를 활용하면 되시겠다. python3, bs4, selenium, chromedriver 정도는 당연히 설치 되어 있는 환경이라고 가정한다.

https://gist.github.com/jybaek/5f30fb6271716b19a5f1dd48937df51d

사용법은 아래와 같다.

$ python3 recover.py --id foo --passwd bar

누군가에게는 도움이 되었기를 바란다. :-)

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday