기본세팅(셀레니움 활용)
Chromedriver 설치
크롬 버전 확인
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()
: 창을 최대 크기로 설정
- Tip! 제어창 조정
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 문법
네이버 사이트의 소스 정보
예시)
<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_SELECTOR | css 선택자로 추출 | #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 파싱
태그
Transclude of 파이썬_api#태그-위치-찾기
Transclude of 파이썬_api#태그-안-텍스트-가져오기