정적인 웹페이지를 파싱할 때는 beautifulsoup4 만 사용해도 되지만 

동적인 웹페이지를 파싱할 대는 selenium을 통해서 실제로 브라우저를 열어서 데이터를 가져와서 파싱하는 편입니다.


이게 정답인지는 모르겠지만 (불편하거든요 : 브라우저가 열려야 하니깐 gui 없는 서버 환경에서는 작동하지 않아서요)

스크롤이 움직이면 데이터를 로딩하는 페이지도 잘 파싱할 수 있어서 사용하고 있습니다.




pip로 selenium을 설치하면 되고요. 2018.02.14. (아 발렌타인데이 군요) 기준 3.9.0이 최신입니다.


pip install selenium 


저는 크롬브라우저를 통해서 웹페이지에 접속하기 때문에 크롬드라이버를 다운받아서 적당한 곳에 위치시킵니다. 2018.02.14. 기준 2.35 버전이 최신이네요. 


https://sites.google.com/a/chromium.org/chromedriver/downloads



사용방법은 정말 단순합니다. 여기서는 파싱을 하는 내용을 다루고 싶은 건 아니고요.




라이브러리 불러오고 사용할 드라이버를 설정하고 get 함수를 통해서 브라우저가 그 페이지에 접속하도록 합니다.



제가 궁금했던 것은 웹 브라우저가 열리는데 그 크기를 조절하는 방법이었습니다. 

검색해보니깐 아래와 같은 방법으로 처리하면 되네요.


https://stackoverflow.com/questions/23381324/how-can-i-control-chromedriver-open-window-size




chromedriver 자체에는 설정 값이 없는거로 보이네요.





소스코드는 아래 github 에서 복사하실 수 있습니다.


https://github.com/motobyus/moto/tree/master/util/selenium







+ Recent posts