[중급편] 파이썬 selenium 활용 (진행 중)

본 코스는 구독 VOD로 제공됩니다. (구독 확인을 위해 회원가입/로그인이 필요합니다. 구독정책은 구독정책 페이지에서 확인하실 수 있습니다.)

초급편 - 파이썬 requests/BeautifulSoup4 라이브러리 활용에 이어 중급편을 진행합니다.

requests를 통한 처리와의 비교는 초급편의 19 맛보기) requests와 selenium간의 비교 에피소드를 참고해보세요.

Selenium을 활용한 크롤링의 특징과 개발환경 세팅 방법에 대해서 살펴보고, Selenium을 통한 크롤링의 예시도 간략히 살펴보겠습니다.

31:42 (1회 시청)

  1. Chrome Driver를 위한 필수적인 옵션에 대해서 살펴보겠습니다. (언어설정, shared memory 그기, user data 디렉토리 지정하기, headless 모드 지정, infobars 끄기, 커스텀 User-Agent, 윈도우 크기 지정, 최대화/풀스크린 지정)
  2. DevToolsActivePort file doesn't exist 예외에 대한 대응 방법에 대해서도 살펴보겠습니다.
  3. 코드를 통한 Extensions 설치 방법에 대해서 살펴보겠습니다.

20:29 (1회 시청)

대한민국 내에서는 윈도우의 Internet Explorer가 필요할 때가 많습니다. Selenium에서 Internet Explorer Driver를 사용할 때에 꼭 필요한 설정들에 대해서 살펴보겠습니다.

14:59 (1회 시청)

크롤링을 머신 1대에서 수행을 할 수도 있겠지만, 머신의 성능이 넉넉할 경우 가상머신을 다수 설치/운영하여, 다수의 크롤링/자동화 작업을 보다 수월하게 수행할 수 있습니다. 그리고 원하는 운영체제/구성도 자유롭게 구성이 가능하구요.

국내 관공서/사이트 중에 최신버전의 IE가 지원되지 않는 경우, 구버전의 IE가 필요할 수도 있겠는 데요. 가상머신을 활용하면 손쉽게 대응하실 수 있습니다.

다양한 가상머신 솔루션 중에 VirtualBox를 활용하여, 윈도우7 환경을 구성하고 Jupyter Notebook 서버를 구동한 후에, 호스트 측에서 접속하여 활용하는 방법을 소개해드리겠습니다.

27:41 (1회 시청)

1대의 머신에서 브라우저 자동화를 수행하기 보다, 여러 머신에서 동시에 병렬로 브라우저 자동화를 수행한다면 좀 더 빠르고 효율적으로 크롤링을 수행할 수 있을 것입니다. 그리고 다양한 운영체제/브라우저를 사용할 수 있을테구요. 그런데, 여러 머신에 대해서 크롤링을 수행할려면 생각보다 단계가 험난합니다.

이때 Selenium의 Remote WebDriver를 사용한다면, 손쉽게 운영체제/브라우저를 단일 코드로 자동화를 수행할 수 있으며, 심지어 병렬로 처리하실 수 있습니다.

29:40 (1회 시청)

Selenium IDE는 브라우저 UI를 통한 테스트 시나리오를 녹화 및 재실행할 수 있는 유용한 애플리케이션입니다. 이는 크롤링 목적이 아닌, 자동화 및 UI 테스트에 포커스가 되어있습니다. 웹서비스를 개발 중 이실 경우 웹서비스 테스트 목적으로 유용하게 사용하실 수 있습니다.

Selenium IDE에 대한 설치/활용법에 대해서 살펴보고, 파이썬 직접 코딩을 통한 방식과의 차이점에 대해서도 살펴보겠습니다. 그리고 selenium-side-runner 유틸리티를 통한 실행방법에 대해서도 살펴볼 것입니다.

26:55 (1회 시청)

영상이 공개되었습니다. (2019-05-04 04:00)

기본 시나리오

  1. 다음 주소의 페이지에서 https://www.instagram.com/explore/tags/태그명/
  2. 그 태그의 전체 포스팅 개수를 알아내고
  3. 원하는 최대 개수를 크롤링할 때까지 Page Down을 수행하며 크롤링하여
  4. 각 포스팅의 주소를 획득
  5. 각 포스팅 페이지를 방문하여 해시태그를 알아내기 해시태그 빈도 시각화

56:27 (1회 시청)

인스타그램에서 타임라임 보기, 좋아요/팔로우 등의 액션을 위해서 로그인 과정이 필요합니다. 로그인 방법 중에 이메일/암호를 통한 로그인 방법과 보안 코드 (Security Code)를 다루는 방법에 대해서도 살펴보구요. 그리고 세션 아이디 (sessionid)를 재활용하여, 보다 손쉽게 로그인하는 방법에 대해서도 살펴보겠습니다. :D

33:48 (1회 시청)

우선 기본 코드를 먼저 공개합니다.

위 코드 베이스와 더불어 몇 가지 예외처리를 적용하느라 시간이 좀 더 걸리고 있습니다.

코드를 보완해서 주말에 영상을 올릴 수 있도록 하겠습니다.

이메일을 등록하시면 쓰신 댓글에 대한 답글이 등록되면 이메일로 알려드립니다. 이메일은 스팸함을 꼭 확인해주세요.