from selenium import webdriver
driver = webdriver.Chrome(executable_path="../driver/chromedriver.exe") #chrom driver
driver.get("https://pinkwink.kr")
# https://를 입력하지 않으면 제대로 페이지가 나오지 않을 수 있다
#driver.quit() # selenium으로 연 창 끄기
# maximize_window() : 화면 최대 크기 설정
driver.maximize_window()
# minimize_window() : 화면 최소 크기 설정
driver.minimize_window()
# set_window_size(x, y) : x, y 화면 크기 설정
# 한 화면에 태그가 존재해야만 selenium으로 태그를 불러올 수 있다
driver.set_window_size(600, 600)
# refresh() : 새로고침
driver.refresh()
# back() : 뒤로 가기
driver.back()
# forward() : 앞으로 가기
driver.forward()
# find_element() : 클릭하기
# '#' : id앞에 붙음, class 앞에는 '.'이 붙음
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) > a > span.thum > img")
first_content.click()
# driver.execute_script("window.open('')") : 새로운 탭 생성
driver.execute_script("window.open('https://www.naver.com')")
# driver.switch_to.window(driver.window_handles[0]) : 0번째 탭 이동
driver.switch_to.window(driver.window_handles[1])
len(driver.window_handles) # selenium으로 다룰 수 있는 창의 개수
# 탭 닫기
driver.close() # driver.close() : 현재 탭이 닫힘
# 전체 종료
driver.quit()
# execute_script("return document.body.scrollHeight") : 스크롤 가능한 높이(길이)를 자바 스크립트 코드를 실행해 가져옴
# execute_script() : 자바 스크립트 언어를 이용
# return document.body.scrollHeight : 문서에서 body의 scrollHeight를 반환해라
driver.execute_script("return document.body.scrollHeight")
# execute_script("window.scrollTo(0, 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)") : 화면 스크롤 상단 이동
driver.execute_script("window.scrollTo(0, 0)")
# ActionChains 클래스 : 특정 태그 지점까지 스크롤 이동
# https://selenium-python.readthedocs.io/api.html
from selenium.webdriver import ActionChains
some_tag = driver.find_element(By.CSS_SELECTOR, '#content > div.cover-list > div > ul > li:nth-child(1)')
action = ActionChains(driver)
action.move_to_element(some_tag).perform()
driver.quit()
from selenium import webdriver # 크롬 제어를 위해
from selenium.webdriver.common.by import By # 태그를 선택하기 위해
driver = webdriver.Chrome("../driver/chromedriver.exe")
driver.get("https://www.naver.com")
# clear() : 원래 있던 것을 지워줌
keyword = driver.find_element(By.CSS_SELECTOR,"#query")
keyword.clear()
keyword.send_keys("파이썬")
search_btn = driver.find_element(By.CSS_SELECTOR,"#search_btn")
search_btn.click()
driver.find_element(By.XPATH, '//*[@id="query"]').send_keys('xpath')
driver.find_element(By.XPATH, '//*[@id="search_btn"]').click()
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome("../driver/chromedriver.exe") # mat : "../driver/chromedriver"
driver.get('https://pinkwink.kr')
# 1. 돋보기 버튼을 선택
# class가 행동에 의해 바뀌는 것 : 동적 페이지 기능.....
from selenium.webdriver import ActionChains
search_tag = driver.find_element(By.CSS_SELECTOR, '.search')
action = ActionChains(driver)
action.click(search_tag)
action.perform()
# 2. 검색어 입력
driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > input[type=text]').send_keys('딥러닝')
# 3. 검색 버튼 클릭
driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > button').click()
# 현재 화면의 html 코드 가져오기
# page_source : 현재 화면의 html 코드 반환
driver.page_source
from bs4 import BeautifulSoup
req = driver.page_source
soup = BeautifulSoup(req, 'html.parser')
#print(soup.prettify())
soup.select('.post-item')
contents = soup.select('.post-item')
len(contents)
contents[2]
driver.quit()
💻 출처 : 제로베이스 데이터 취업 스쿨