Selenium : 웹 브라우저를 직접 제어, 크롤링시 사용되는 스크래핑 도구
웹앱을 테스트하는 웹 프레임워크로서 크롬이나 파이어폭스같은 각 브라우저의 각 브라우저마다 제공되는 Webdriver API를 활용하여 크롬이나 파이어폭스 같은 웹 브라우저를 Java나 C#, Python 같은 프로그래밍 언어를 통해 제어
Selenium 동작방식
Python 소스코드 -> Selenium 패키지 -> ChromeDriver(WebDriver) -> Google Chrome |
ChromeDriver 내려받기
https://chromedriver.chromium.org/downloads에서 사용중인 운영체제와
Google Chrome 브라우저의 버전에 맞는 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 |
'Python' 카테고리의 다른 글
python (반복문 유형) (0) | 2020.05.22 |
---|---|
python(지도 시각화) (0) | 2020.05.21 |
Python (데이터 전처리 - 행/열 삭제 및 병합) (0) | 2020.05.15 |
Python (데이터 전처리 - 데이터검색, 행/열 추가) (0) | 2020.05.15 |
Python (데이터 전처리 - 행/열 순서 및 이름 변경, 데이터 정렬) (1) | 2020.05.14 |
댓글