Python Selenium (etc)
2022-06-08 13:34 - swindler
from selenium import webdriver as wd
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ES
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
-------- 초기화
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = wd.Chrome(chrome_driver, chrome_options=chrome_options)
actions = ActionChains(driver)
http_base = requests.Session()
-------- 스크롤 관련
# PageDown
driver.find_element_by_tag_name("body").send_keys(Keys.PAGE_DOWN)
new_height = driver.execute_script("return document.documentElement.scrollTop")
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
321 픽셀만큼 scroll
driver.execute_script("window.scrollBy(0, -321);")
--------- element 찾기
elements = driver.find_elements_by_css_selector("li._aaei")
driver.find_element_by_css_selector("div._aa6e")
article.find_element_by_css_selector("div._aagv > img")
elements = driver.find_elements_by_xpath('//a[@href]')
for elem in elements:
urls = elem.get_attribute('href')
driver.find_elements_by_class_name("_9zm2")
# text 추출
elm.find_element_by_css_selector("div._aaep").find_element_by_css_selector("span._aacl").text
------- 액션
driver.execute_script("arguments[0].click();", next_btn[0])
특정좌표 클릭
actions.move_by_offset(10,10).click().perform()
특정 element의 특정 좌표 클릭
actions.move_to_element(close_btn).move_by_offset(1,1).click().perform()
------- html 소스
object의 경우 : elem.get_attribute("innerHTML")
페이지 전체 : driver.page_source
------ Wait 관련
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//svg[@class="x1lliihq"]')))
---- 현재 url 가져오기
driver.current_url
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ES
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
-------- 초기화
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = wd.Chrome(chrome_driver, chrome_options=chrome_options)
actions = ActionChains(driver)
http_base = requests.Session()
-------- 스크롤 관련
# PageDown
driver.find_element_by_tag_name("body").send_keys(Keys.PAGE_DOWN)
new_height = driver.execute_script("return document.documentElement.scrollTop")
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
321 픽셀만큼 scroll
driver.execute_script("window.scrollBy(0, -321);")
--------- element 찾기
elements = driver.find_elements_by_css_selector("li._aaei")
driver.find_element_by_css_selector("div._aa6e")
article.find_element_by_css_selector("div._aagv > img")
elements = driver.find_elements_by_xpath('//a[@href]')
for elem in elements:
urls = elem.get_attribute('href')
driver.find_elements_by_class_name("_9zm2")
# text 추출
elm.find_element_by_css_selector("div._aaep").find_element_by_css_selector("span._aacl").text
------- 액션
driver.execute_script("arguments[0].click();", next_btn[0])
특정좌표 클릭
actions.move_by_offset(10,10).click().perform()
특정 element의 특정 좌표 클릭
actions.move_to_element(close_btn).move_by_offset(1,1).click().perform()
------- html 소스
object의 경우 : elem.get_attribute("innerHTML")
페이지 전체 : driver.page_source
------ Wait 관련
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//svg[@class="x1lliihq"]')))
---- 현재 url 가져오기
driver.current_url