Selenium 사용법 (미완)

귀찮Lee·2022년 3월 4일
0

크롬 버전 99.0.4844.51 기준으로 작업하였습니다.

@ 설치방법

  1. terminal 에서 아래 코드 입력 // 파이썬 환경 기준
pip install selenium
  1. 브라우저별로 selenium webdriver를 다운로드 // 크롬 브라우저 이용 기준
    자신의 크롬브라우저에서 '설정>Chrome 정보' 에 가서 최신 업데이트 하고 해당 버전으로 설치할 것
    https://sites.google.com/a/chromium.org/chromedriver/downloads

  2. 다운로드 받은 chrome.exe를 작업할 python 파일과 같은 폴더에 넣을 것
    그렇지 않다면 아래 코드에서 디렉토리를 설정해주어야 함.

@ 사용예제
python에서 서술 / 전시회 정보를 크롤링하는 예제

# selenium import 부분
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 같은 폴더에서 크롬드라이버 불러오기
driver = webdriver.Chrome('chromedriver')
# 네이버 전시회 검색결과 띄우기
driver.get(url='https://search.naver.com/search.naver?where=nexearch&sm=tab_etc&mra=bjBC&qvt=0&query=%EC%A0%84%EC%8B%9C%ED%9A%8C')
# 해당 페이지가 전부 로드될 때 까지 대기
time.sleep(1)

# page가 87번까지 있으므오 86번 반복실행
for i in range(1,87):
    # 크롤링 할 박스 선택
    divs = driver.find_elements(by=By.CSS_SELECTOR, value='#mflick > div > div > div > div > div')
    for div in divs:
        # a_title : 전시회 제목 / a_time : 전시회 기간 / a_place_name : 장소 / a_place_url : 장소 관련 사이트 / a_image : 전시회 이미지 링크
        # find_elements 는 해당하는 태그를 리스트 형식으로 불러오므로 0번째를 골라서 추출함 / 한개만 불러올 때는 find_element를 사용하는  것을 추천
        # 괄호 안 by 값을 CSS_SELECTOR 대신에 다른 것으로 변경하면 id 태그 이름 등으로 찾을 수 있다. 자세한 사항은 참고 링크 참조 / 해당 링크에는 전 버전으로 서술되어 있어 함수는 아래와 같은 형식으로 사용할 것.
        a_title = div.find_elements(by=By.CSS_SELECTOR, value='div.data_area > div > div.title > div > strong > a')[0].text
        a_time = div.find_elements(by=By.CSS_SELECTOR, value='div.data_area > div > div.info > dl:nth-child(1) > dd')[0].text
        a_place_name = div.find_elements(by=By.CSS_SELECTOR, value='div.data_area > div > div.info > dl:nth-child(2) > dd > a')[0].text
        a_place_url = div.find_elements(by=By.CSS_SELECTOR, value='div.data_area > div > div.info > dl:nth-child(2) > dd > a')[0].get_attribute("href")
        a_image =div.find_elements(by=By.CSS_SELECTOR, value='div.data_area > a > img')[0].get_attribute("src")
        print(a_title, a_time, a_place_name, a_place_url, a_image)

    # 클릭 할 버튼 생성
    NextPageBtn = driver.find_elements(by=By.CSS_SELECTOR, value='#main_pack > div.sc_new.cs_common_module.case_list.color_1._kgs_art_exhibition > div.cm_content_wrap > div > div > div.cm_paging_area._page > div > a.pg_next.on')
    # 해당 버튼 클릭
    NextPageBtn[0].click()
    # 클릭 이후에 박스가 로딩될 때까지 대기
    time.sleep(0.2)

Selenium 업데이트로 인해 아래 사이트와 사용하는 함수 형태가 다름
함수 형태는 위의 코드를 참고

이해하기 쉬운 예제
설명1(설치방법포함)
설명2

profile
장비를 정지합니다.

0개의 댓글

관련 채용 정보