*결과물 확인을 위해 스크롤을 내리고, 뒤로가고, 새로고침 등을 해야할 때
https://www.selenium.dev/documentation/webdriver/drivers/
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("http://www.naver.com")
driver.quit() : 전체 종료
first_content = driver.find_element(By.CSS_SELECTOR, "copy_selector 값")
first_content.click()
그 외 : 화면 최대화, 탭이동, 탭 닫기
1. 화면 하단, 상단 이동
2. ActionChains
~~.move_to_element / ~~driver.click
2-1. 이동한 곳에서 클릭
menu = driver.find_element(By.CSS_SELECTOR, ".nav")
hidden_submenu = driver.find_element(By.CSS_SELECTOR, ".nav #submenu1")
actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu) #이동만 하려면 이건 없어도 됨.
actions.perform()
2-2. 클릭만 하기 (클릭후 class값이 변동, 변동 전 값으로 클릭)
some_tag = driver.find_element(By.CSS_SELECTOR, ".search")
action = ActionChains(driver)
action.click(some_tag)
action.perform()
1. CSS_SELECTOR
1-1. 검색칸 변수 - 그걸 send_keys
keyword = driver.find_element(By.CSS_SELECTOR, "#keyword")
keyword.clear() #지울때
keyword.send_keys("양천구")
1-2. 버튼 누르기
search_btn = driver.find_element(By.CSS_SELECTOR, "#keyword_div > form > button")
search_btn.click()
2. xpath
search_btn = driver.find_element(By.XPATH, 'Xpath복사 내용').click()
셀레니움으로 페이지 접속 +
from bs4 import BeautifulSoup
res = driver.page_source
soup = BeautifulSoup(res, "html.parser")
1. 오류 (한번에 url접근이 안된다던지, 팝업창이 나온다던지)
2. time.sleep(초) : 데이터 불러올때 기다려주기
3. 상위내용에서 하위내용 불르오기
3-1. id > tag > vlaue > id치는곳에 해당내용 send_keys
sido_list_raw = driver.find_element(By.CSS_SELECTOR, "#SIDO_NM0")
sido_list = sido_list_raw.find_elements(By.TAG_NAME, "option")
sido_names = []
for option in sido_list :
sido_names.append(option.get_attribute("value"))
sido_names
= [option.get_attribute("value") for option in sido_list ]
sido_list_raw.send_keys(sido_names[0])
4. 파일저장도 클릭해서 가능!