- 모듈 불러오기
from selenium import webdriver
#window유저라면 드라이버에 꼭 .exe 확장자를 붙여줘야 한다.
#execytable_path는 생략 가능
driver = webdriver.Chrome(executable_path="../driver/chromedriver.exe")
#get("") : 괄호 안의 URL을 드라이버로 열어준다는 명령어
driver.get("https://pinkwink.kr")
상단에 Chrome이 자동화된 테스트 소프트웨어에 의해 저어되고 있습니다.
라는 문구가 나온다.
몇가지 명령어를 알아보자
- driver 끄기
- dirver를 불러왔다면 작업을 마치고 항상 꺼줘야 한다.
driver.quit()
- 화면 최대 크기 설정
driver.maximize_window()
- 화면 최소 크기 설정
driver.minimize_window()
- 화면 크기 설정
driver.set_window_size(600,600)
- 새로고침
driver.refresh()
- 뒤로 가기
driver.back()
- 앞으로 가기
driver.forward()
- 클릭하기 : 태그 값 필요
#By 모듈을 불러와줘야 한다. from selenium.webdriver.common.by import By #필요한 요소 해당 드라이버창 개발자도구에서 찾아 copy selector로 복사해오기 first_content = driver.find_element(By.CSS_SELECTOR, "#content > div.cover-masonry > div > ul > li:nth-child(1)") #클릭 명령어 first_content.click()
- 새 탭 생성
#execute_script() : javascript코드를 실행하겠다라는 명령어 #execute_script() 안의 명령어는 javascript의 문법 driver.execute_script("window.open('https://www.naver.com')")
- 탭 이동
#두번째 탭으로 이동 #만약 옮인 탭을 close로 닫아줬다면 다시window_handles[0]으로 첫번째 드라이버 창으로 바꿔줘야 한다. driver.switch_to.window(driver.window_handles[1])
- 탭 닫기
#방법1 driver.close() #방법2 driver.quit()
- 스크롤 가능한 높이(전체 긹이)
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);")
- 특정 태그 지점까지 스크롤 이동
#ActionChains 불러오기 from selenium.webdriver import ActionChains #원하는 태그 변수에 저장 some_tag = driver.find_element(By.CSS_SELECTOR, '#content > div.cover-list > div > ul > li:nth-child(1)') #ACtionChains모듈에 현재 사용 중인 driver를 넣어줘서 현재 driver를 이용하겠다. action = ActionChains(driver) #move_to_element: 지정한 요소로 움직일거다 #perform() : 준비됐으면 수행 해라 action.move_to_element(some_tag).perform()
- 모듈 불러오기 및 드라이버 창 열기
from selenium import webdriver from selenium.webdriver.common.by import By river = webdriver.Chrome("../driver/chromedriver.exe") driver.get("https://www.naver.com")
- CSS_SELECTOR
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()
- XPATH
'//' : 최상위
'*' : 자손 태그
'/' : 자식 태그
- 모듈 가져오기 및 드라이버 창 열기
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver import ActionChains driver = webdriver.Chrome("../driver/chromedriver.exe") driver.get("https://pinkwink.kr")
- 돋보기 버튼 클릭
search_tag = driver.find_element(By.CSS_SELECTOR, '.search') action = ActionChains(driver) action.click(search_tag) action.perform()
- 검색어 입력
keyword = driver.find_element(By.CSS_SELECTOR, "#header > div.search > input[type=text]") keyword.clear() keyword.send_keys("딥러닝")
- 검색 버튼 클릭해서 검색
driver.find_element(By.CSS_SELECTOR, "#header > div.search.on > button").click()
- 모듈 가져오기
from bs4 import BeautifulSoup
- driver.page_source : 현제 페이지 html코드 가져오기
req = driver.page_source soup = BeautifulSoup(req, "html.parser")
- 원하는 부분 출력하기
soup.select('.post-item')