본문으로 바로가기
반응형

셀레니엄 패키지 (Selenium Package)

  • 웹 어플리케이션 테스트를 위한 프레임워크이다.
  • 다양한 브라우저 작동을 지원하며 크롤링에도 활용가능하다.
  • 정적, 동적페이지 크롤링으로도 접근이 불가능한 데이터에 접근할 때 유용하다.
  • 현존하는 거의 모든 웹브라우저를 다양한 언어를 통해 제어 가능하다.
# 셀레니움 설치
!pip3 install selenium # 맥
!pip install selenium # 윈도우

 

크롬 드라이버 (Chrome Driver)

  1. 크롬 버전을 확인하고, (chrome://settings/help)
  2. 크롬 드라이버를 설치한다. https://chromedriver.chromium.org/downloads

  3. 다운로드된 크롬 드라이버를 작업폴더에 넣는다.

 

셀레니움으로 크롤링하기

먼저, 필요한 패키지를 불러온다.

# 셀레니움 import
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup

크롬 드라이버 객체를 선언한다.

# 크롬창 열기
driver = webdriver.Chrome('./chromedriver')

# 윈도우 사용자
# driver = webdriver.Chrome('.//chromedriver.exe')

크롬 드라이버에 원하는 url을 넣고 실행한다.

# 설정한 url로 데이터 get함수로 요청
url = 'https://naver.com'
driver.get(url) # driver가 크롬창을 제어하고있는 객체이다.

크롬 개발자도구에서 원하는 홈페이지 태그를 선택하고 XPath를 복사한다.

# 키워드를 입력받아 검색창의 xpath에 send_keys 함수로 키워드 입력
driver.find_element_by_xpath('//*[@id="query"]').send_keys('오징어 게임') # 입력해준다.
driver.find_element_by_xpath('//*[@id="query"]').click() # 클릭해준다.

위와 같은 방식으로 코드를 통해 크롬에 접속하여 조작을 할 수 있으면,

자동화 및 크롤링을 진행할 수 있다.

 

심화

# 포스팅 image url 따오기
image = driver.find_element_by_css_selector('img.FFVAD')
# img alt가 들어가 있는 곳을 선택
# 크롬 드라이버 안에 css selecter로 해당 클래스의 이미지를 저장한다.
# image 변수에서 src 속성에 접근
image_url = image.get_attribute('src')
# 이미지 저장을 위한 패키지
import urllib
# 이미지 저장
urllib.request.urlretrieve(image_url, './test_img.jpg')

등등 인스타의 이미지를 불러올 수도 있고, 활용이 다양하다.

 

 

 

Reference:

https://selenium-python.readthedocs.io/

 

Selenium with Python — Selenium Python Bindings 2 documentation

Note This is not an official documentation. If you would like to contribute to this documentation, you can fork this project in GitHub and send pull requests. You can also send your feedback to my email: baiju.m.mail AT gmail DOT com. So far 50+ community

selenium-python.readthedocs.io

 

반응형