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
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]