반응형

파이썬으로 크롤링 하다보면 일반적인 방법으로 소스를 못가져 오는 사이트들이 있다.


이런 사이트들은 대부분 자바스크립트를 이용해 화면에 html을 뿌리는 사이트들이다.


이럴때 파이썬은 크롬드라이버나 파이어폭스 드라이버를 이용해 가상의 모니터를 띄워서 크롬을 실행하고 화면을 실제로 로딩하는 방식으로 html소스를 가져올 수 있게 한다.


display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Chrome('/home/test/chromedriver', service_args=['--verbose', '--log-path=/home/test/chromedriver.log'])
driver.get('http://www.wemakeprice.com/best')
driver.implicitly_wait(3)
html = driver.page_source
soup = bs(html, 'html.parser')


이렇게 하는거다...


그런데 이렇게 하면 꼭 서버의 부하가 엄청나게 올라가서 나중엔 서버가 죽어버리는 현상이 발생한다.


이점이 항상 의문이었다. 


top 을 쳐봐도 부하가 많은게 없었는데...


그래서 


pkill -9 -ef chrome 


이런식으로 크롬 프로세스를 죽였다...


그런데 그래도 안되더라...


좀더 알아보니..


Xvfb 라는 놈이 엄청나게 떠 있었다.


이놈이 머하는 놈이냐 하면 가상 모니터 만들어주는 놈이다....헐...


pkill -9 -ef Xvfb


이렇게 죽여준다...(대소문자 구분해야한다. X가 대문자다)


자꾸 생기니 자꾸 죽여줘야한다.


crontab 에 넣어주자...


해결됐다....극뽁...

반응형

+ Recent posts