기본세팅(셀레니움 활용)

Chromedriver 설치

크롬 버전 확인

800x400|center

driver 설치

설치 사이트 버전 대시보드

패키지

  • BeautifulSoup: 페이지의 HTML 및 XML 문서를 파싱하고, 안에 있는 정보를 추출
  • selenium: 웹 브라우저를 제어하여, 페이지를 불러오고 JavaScript를 실행하여 데이터 접근
from bs4 import BeautifulSoup  
from selenium import webdriver  
from selenium.webdriver.common.by import By

사용법

접근

  • 제어창을 열고, 해당 url 접속한 후 제어창 종룔
    • Tip! 제어창 조정
      • set_window_position() 제어창 중심 좌표 설정
      • maximize_window(): 창을 최대 크기로 설정
driver = webdriver.Chrome()
 
driver.set_window_position(0, 0)  
driver.maximize_window()
 
url = "https://www.industryland.or.kr/il/danji/list"  
driver.get(url)
 
driver.close()

참고사항

Transclude of 파이썬_api#html에서-데이터-추출

활용

경로설정

  • 크롤링을 통해 엑셀 등 파일을 다운로드 할 경우, 저장 경로 설정
    • ChromeOptions()을 통해 다운로드 경로 설정
    • 이후 options 매개변수 활용하여, 제어창 생성
path = '경로'
 
chrome_options = webdriver.ChromeOptions()  
prefs = {'download.default_directory': path}  
 
chrome_options.add_experimental_option('prefs',prefs)  
  
driver = webdriver.Chrome(options=chrome_options)

element 문법

참고 사이트

네이버 사이트의 소스 정보

center

예시) <input type="text" class="width-320" id="search_danji_nm" name="search_danji_nm" maxlength="100" value="">

element(단일), elements(복수)설명예시
By.ID태그의 id 값으로 추출
By.NAME태그의 name 값으로 추출
By.XPATH태그의 경로로 추출/html/body/div/main/table
//*[@id="root"]/main/table
By.LINK_TEXT링크 텍스트값으로 추출
By.PARTIAL_LINK_TEXT링크 텍스트의 자식 텍스트 값을 추출
By.TAG_NAME태그 이름으로 추출
By.CLASS_NAME태그의 클래스명으로 추출
By.CSS_SELECTORcss 선택자로 추출#root > main > table

입력

driver.find_element(By.ID, "search_danji_nm").send_keys(name)

클릭

driver.find_element(By.CSS_SELECTOR, '#root > main > div.search-box.mar-bottom-20 > button').click()
driver.find_element(By.XPATH, f"//td[@class='text-al-left' and text()='{name}']").click()

html 파싱

html에서 데이터 출력 with Beautiful

태그

Transclude of 파이썬_api#태그-위치-찾기

Transclude of 파이썬_api#태그-안-텍스트-가져오기