만쥬의 개발일기
article thumbnail
[Puppeteer / Trouble Shooting] puppeteer가 좀비 프로세스를 종료하지 않는 문제

puppeteer로 만든 프로그램을 돌리는 중, chromium 브라우저가 종료되지 않는 문제가 발생했다. 다음 명령어로 chromium 창이 몇개 떠 있는지 확인해보자. pgrep chromium | wc -l 949개?! 엄청난 메모리 손실을 유발하고 있었다. 지금은 겨우 버티고 있을지 몰라도, 언제 서버가 다운될 지 모르는 상황이다. ps -ef로 확인을 해보니, 좀비 프로세스로 끝도 없이 남은 모습.. 분명히 browser.close()를 해준 것 같은데 왜 좀비로 남은 걸까? 그 이유는 try catch문으로 감싸서 브라우저를 닫아줄 때, try문에만 browser.close를 적어주었기 때문이다. 이미 브라우저를 켠 상태에서 error가 날 경우 프로그램이 종료되며 해당 브라우저는 좀비 프로세..

article thumbnail
[Project] - Web Sublink Crawler for Dynamic Web
📑Project , 대외활동 2024. 1. 10. 17:47

목표: Dynamic Web도 크롤링 가능한 Web Sublink Crawler 제작 요구사항 불특정 다수의 웹사이트의 하위 링크를 모두 찾는다. SPA에도 통용되어야 한다. 시간이 너무 오래걸려선 안된다. 모듈화 가능하게 제작한다. 첫 번째 시도 : SEO 크롤러 사용 Screaming frogm, Moz 등 다양한 SEO 크롤러 활용 SPA가 아닌 웹사이트의 경우 모든 하위링크를 잘 찾는 모습이다. 여기서는 대략 266개의 하위 링크를 찾았고, 시간은 대략 3분 정도가 걸렸다. SPA의 경우는 하위링크를 잘 찾지 못하는 것으로 확인되었다. 장점 : 사용이 쉽다 SPA가 아니라면 모든 링크를 잘 찾는다. 단점 : 유료 플랜이 있다. 시간이 오래걸린다. SPA의 경우 하위 링크를 찾지 못한다. 두 번째 ..