EDA 11

조천룡·2023년 6월 11일

EDA

목록 보기
11/12
post-thumbnail

Selenium

01 . selenium webdriver

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(executable_path='../driver/chromedriver')
driver.get('https://pinkwink.kr')
driver.quit()

# 화면을 최대 크기 설정 
driver.maximize_window()

# 화면 최소 크기 설정 
driver.minimize_window()

# 화면 크기 설정 
driver.set_window_size(600,600)

# 새로 고침 
driver.refresh()

# 뒤로 가기 
driver.back()

# 앞으로 가기 
driver.forward()

# 클릭 
from selenium.webdriver.common.by import By

first_content = driver.find_element(By.CSS_SELECTOR,'#content > div.cover-masonry > div > ul > li:nth-child(1)')
first_content.click()

# 새로운 탭 생성 
driver.execute_script('window.open("http://www.naver.com")')

# 탭 이동
driver.switch_to.window(driver.window_handles[1])

len(driver.window_handles)

# 탭 닫기
driver.close()  # 개별 닫기 
driver.quit()    # 전체 창 닫기 

02 . 화면 스크롤

# 스크롤 가능한 높이(길이)
# 자바스크립트 코드 실행 
driver.execute_script('return document.body.scrollHeight')

# 화면 스크롤 하단 이동 
driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')

# 현재 보이는 화면 스크린샷 저장 
driver.save_screenshot('./last_height.png')

# 화면 스크롤 상단 이동 
driver.execute_script('window.scrollTo(0,0);')

# 특정 태그 지점까지 스크롤 이동 
from selenium.webdriver import ActionChains

some_tag = driver.find_element(By.CSS_SELECTOR,'#content > div.cover-masonry > div > ul > li:nth-child(6)')
action = ActionChains(driver)
action.move_to_element(some_tag).perform()

driver.quit()

03 . 검색어 입력

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome('../driver/chromedriver')
driver.get('https://www.naver.com')

keyword = driver.find_element(By.CSS_SELECTOR,'#query')
keyword.clear()
keyword.send_keys('파이썬')

search_btn = driver.find_element(By.CSS_SELECTOR, '#sform > fieldset > button')
search_btn.click()

04 . XPATH

'//': 최상위
'*': 자손태그
'/': 자식태그

driver.find_element(By.XPATH, '//*[@id="query"]').send_keys('xpath')

driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button').click()

driver.quit()

from selenium import webdriver
from selenium.webdriver.common.by import By 

driver = webdriver.Chrome('../driver/chromedriver')
driver.get('https://pinkwink.kr')

# 돋보기 버튼을 선택 
from selenium.webdriver import ActionChains

search_tag = driver.find_element(By.CSS_SELECTOR,'.search')
action = ActionChains(driver)
action.click(search_tag)
action.perform()

# 검색어를 입력 
driver.find_element(By.CSS_SELECTOR,'#header > div.search > input[type=text]').send_keys('딥러닝')

# 검색 버튼 클릭 
driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > button').click()

05 . selenium + beaurifulsoup

# 현재 화면의 html 코드 가져오기 
driver.page_source

from bs4 import BeautifulSoup

req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')

soup.select('.post-item')

contents = soup.select('.post-item')
len(contents)

contents[2]
profile
10√2 Data

0개의 댓글