문과생 데이터사이언티스트되기 17!

selenium

Selenium 정의

웹 애플리케이션 테스트를 위한 포터블 프레임워크이다. 셀레늄은 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 플레이백 도구를 제공한다. (셀례늄 IDE) C 샤프, 그루비, 자바, 펄, PHP, 파이썬, 루비, 스칼라 등 수많은 유명 프로그래밍 언어들에서 테스트를 작성하기 위한 테스트 도메인 특화 언어(Selenese)를 제공한다. 이 테스트들은 현대의 대부분의 웹 브라우저에서 수행이 가능하다. 셀레늄은 윈도우, 리눅스, macOS 플랫폼에서 디플로이된다. 아파치 2.0 라이선스로 배포되는 오픈 소스 소프트웨어이다. [출처: 위키백과]

selenium 설치

pip install selenium
conda install -y selenium

둘 중의 코드를 사용하여 설치해주면 된다.
이후 크롬드라이버를 꼭! 설치해줘야 실행이 가능하다.

selenium import 방법

import selenium
from selenium import webdriver
from selenium.webdriver import ActionChains

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait

Selenium 불러오기

URL을 변수에 담는다. 이후에 다음과 같은 코드를 입력한다.

driver = webdriver.Chrome(executable_path='chromedriver')
driver.get(url=URL)

꿀팁

import time

time.sleep(초)

다음 time 함수를 import하여 불러오는 파일에 시간을 지연해준다.

사용하는 이유

  1. 자바스크립트가 동적으로 만든 데이터를 크롤링 하기 위해

  2. 사이트의 다양한 HTML 요소에 클릭, 키보드 입력 등 이벤트를 주기 위해

    Selenium을 잘 활용하면, 평소에 반복적으로 하고 있는 웹상의 업무를 자동화할 수도 있다.

  3. 자동으로 로그인하기

  4. 메일보내기 자동화

  5. 블로그 이웃새글 자동좋아요 누르기

  6. 인스타그램 자동으로 좋아요, 댓글 작성하기

  7. 등등 정말 많은 다양한 일

selenium 단점

브라우저를 직접 동작시켜 실제 사용자 동작을 직접 시뮬레이션한다는 것은 자바스크립트(JavaScript)를 이용해 비동기적이나 뒤늦게 불러와지는 컨텐츠들을 가져올 수 있음을 의미한다.

  1. 사용자에게 제공되는 눈에 보이는 컨텐츠는 전부 크롤링이 가능하지만 컴퓨터 사양에 따라 느릴 수 있다.
  2. 브라우저를 직접 켜서 움직이므로 자원을 많이 잡아먹을 수 있다.
    => 웹 크롤링 시 requests 라이브러리와 같이 사용해 속도 측면을 보완할 수 있다.

[출처][Python Selenium] 파이썬 셀레니움 - 개요와 장단점|작성자 넬티아

경고창 뜰 때 무시하는 코드

from selenium.webdriver.common.alert import Alert

Alert(driver).accept()    #경고창 수락 누름
Alert(driver).dismiss()   #경고창 거절 누름
print(Alert(driver).text  # 경고창 텍스트 얻음

더 많은 정보는 이곳

좋은 웹페이지 즐겨찾기