Selenium
Selenium은
conda install selenium
pip install selenium
!pip install selenium
from selenium import webdriver
driver = webdriver.Chrome('../driver/chromedriver.exe')
driver.get('https://www.naver.com')
코드를 입력하세요
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) > a > span.thum > img'
# id/ 바로 밑에/div태그를 가진/class 이름이 cover-masonry/바로 밑에/div태그가 있고/ul태그가 있고
# 바로 밑에/ li가 가진 콘텐츠 중 nth-child 첫번째 (내가 클릭하고 싶었던 콘텐츠)
)
first_content.click()
driver.execute_script('window.open("https://www.naver.com")')
#드라이버에서 [자바스크립트 execute_script 기능]을 이용
driver.switch_to.window(driver.window_handles[0])
# 다루고 싶은 탭 번호를 인덱스로 설정
driver.close()
driver.quit()
driver.execute_script('return document.body.scrollHeight')
5605
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
# 명령어(0부터 가장 아래까지)
driver.save_screenshot('./last_height.png')
True
driver.execute_script('window.scrollTo(0, 0)')
from selenium.webdriver import ActionChains
some_tag = driver.find_element(By.CSS_SELECTOR, '#content > div:nth-child(5) > div > ul > li:nth-child(1) > a > figure > img')
action = ActionChains(driver)
- ActionChains 를 이용해서 현재 사용 중인 driver를 제어 하겠다
action.move_to_element(some_tag).perform()
#위 기능을 action 변수로 가져와서, move_to_element(내가 지정한 곳 = some_tag으로 이동) 기능을 이용해. 작동
우클릭 > copy > copy selector
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path='../driver/Chromedriver.exe')
driver.get('https://www.naver.com')
keyword = driver.find_element(By.CSS_SELECTOR,'#query')
# 검색어 입력 때마다 기존꺼 삭제할 수 있는 명령
keyword.clear()
#파이썬을 검색할 수 있게 명령
keyword.send_keys('파이썬')
Selection deleted
driver.find_element(By.XPATH, '//*[@id="query"]').send_keys('xpath')
driver.find_element(By.XPATH, '//*[@id="sform"]/fieldset/button').click()
driver.quit()
# selenium을 이용해 Chrome을 제어하기 위한 class
from selenium import webdriver
# 태그를 선택하기 위해서 불러오는 class
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path='../driver/chromedriver.exe')
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.on > input[type=text]').send_keys('딥러닝')
driver.find_element(By.CSS_SELECTOR, '#header > div.search.on > button').click()
driver.page_source
from bs4 import BeautifulSoup
req = driver.page_source
# 가져오려는 html 코드를 담음
soup = BeautifulSoup(req, 'html.parser')
#코드, 읽어오는 옵션
▲ BeautifulSoup 으로 읽어와서
▼ BeautifulSoup 을 이용해서 원하는 데이터를 뽑아올 수 있도록 제어
soup.select('.post-item')
contesnts = soup.select('.post-item')
len(contesnts)
contesnts[1]
미니 프로젝트는 다음 자료에서...