본문 바로가기
Python

Python (Selenium)

by 글로리. 2020. 5. 22.

Selenium : 웹 브라우저를 직접 제어, 크롤링시 사용되는 스크래핑 도구

웹앱을 테스트하는 웹 프레임워크로서 크롬이나 파이어폭스같은 각 브라우저의 각 브라우저마다 제공되는 Webdriver API를 활용하여 크롬이나 파이어폭스 같은 웹 브라우저를 Java나 C#, Python 같은 프로그래밍 언어를 통해 제어

 

Selenium 동작방식

Python 소스코드 -> Selenium 패키지 -> ChromeDriver(WebDriver) -> Google Chrome

 

ChromeDriver 내려받기

https://chromedriver.chromium.org/downloads에서 사용중인 운영체제와

Google Chrome 브라우저의 버전에 맞는 ChromeDriver를 내려받는다.

 

ChromeDriver 받는 방법

 

1. 필요한 모듈 참조

1
2
3
4
5
6
7
8
9
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from bs4 import BeautifulSoup
import time
import datetime as dt
import os
import requests
import zipfile
import shutil
cs

 

2. 크롬이 모바일 장치로 인식되도록 속성을 변경

1
2
3
4
5
6
7
8
9
10
>>> options = webdriver.ChromeOptions()
 
>>> mobile_emulation = {"deviceName""Nexus 5"}
 
>>> options.add_experimental_option("mobileEmulation", mobile_emulation)
 
# 크롬 브라우저를 백그라운드 프로세스 형태로 실행시키고자 하는 경우 아래의 옵션도 추가한다.
#options.add_argument('headless')
#options.add_argument('window-size=1920x1080')
#options.add_argument("disable-gpu")
cs

 

3. 준비된 옵션을 적용한 상태로 크롬 브라우저 열기

1
2
3
4
5
# 맥이나 리눅스의 경우 파일 확장자가 없다. 윈도우의 경우 exe 확장자까지 명시해야 한다.
>>> driver = webdriver.Chrome('./chromedriver', chrome_options=options)
 
# 모든 동작마다 크롬브라우저가 준비될 때 까지 최대 5초씩 대기
>>> driver.implicitly_wait(5)
cs

 - 실행시 표시되는 경고메세지는 무시.

 

 

4. 이미지 수집

1) 수집하려는 페이지로 이동

1
2
3
4
5
# 괄호안에는 해당 URL 입력
>>> driver.get("https://www.instagram.com/explore/tags/python")
 
# 브라우저가 표시될 때 까지 3초간 프로그램 대기
>>> time.sleep(3)
cs

 

 

댓글